【问题标题】:ASP.NET C# Countdown to end of offer - Razor ViewASP.NET C# 倒计时到报价结束 - Razor 视图
【发布时间】:2022-01-05 03:24:00
【问题描述】:

我想在我的网络应用程序上设置一个“计时器”之类的东西来结束我的工作订单。如果我添加新工作,一切看起来都不错,例如: DateOfWorkCompletion 是明天,然后工作列表显示“在@TimeToEnd 日结束报价”,但是如果明天来了,我刷新页面文本仍然是一样的。为什么?我该怎么办?

var TimeToEnd = Math.Floor(decimal.Parse((DateTime.Today - work.DateOfWorkCompletion).Value.ToString("dd")));
    <h2>
        @Html.ActionLink(work.Name, "Details", new { work.WorkId }, new { style = "text-decoration: none; color:black;" })
            <span class="timeAlert">
                -
                @if (TimeToEnd > 1)
                {
                    <span>end of offer in @TimeToEnd days/span> 
                }
                else if (TimeToEnd == 0)
                { 
                    <span class="text-danger">the offer ends today</span>
                }
                else if (TimeToEnd == 1)
                {
                    <span class="text-danger">end of offer in @TimeToEnd day</span>
                else
                { 
                    <span class="text-danger">offer has expired</span>
                }

【问题讨论】:

  • 您需要将值存储在应用程序变量中,或者需要写入某个文件或数据库中,并在需要获取其值时从所需的源获取

标签: c# asp.net razor view


【解决方案1】:

如果 work.DateOfWorkCompletion 是在未来,那么执行 DateTime.Today - work.DateOfWorkCompletion 将导致负值。然后您会陷入混乱,即在负时间跨度中 ToStringing 天数会导致正值

string 抛弃所有来回往复:一个日期减去另一个日期会产生一个 TimeSpan,而 TimeSpan 具有您可以检查的属性,这些属性可以显示有关两个日期之间的时间段长度的信息。

就个人而言,我建议也使用定时日期时间,例如明天下午 6 点优惠结束,今天下午 3 点,距离优惠结束还有 1 天 3 小时:

var tsTilExpiry = someFutureDate - DateTime.Now; //results in a TimeSpan

Console.WriteLine("Offer ends in: " + tsTilExpiry);
Console.WriteLine($"Offer ends in {tsTilExpiry.TotalMinutes} minutes");

Console.WriteLine($"Offer ends in {tsTilExpiry.Days} days, {tsTilExpiry.Hours} hours");


if(tsTilExpiry.TotalDays < 1)
  Console.WriteLine("Hurry! Offer finishes in less than a day");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2019-01-16
    相关资源
    最近更新 更多