ASP.NET C# 报价结束倒计时 - Razor View
ASP.NET C# Countdown to end of offer - Razor View
我想在我的 Web 应用程序上有一个类似于“计时器”的东西来结束我的工作订单。如果我添加新工作,一切看起来都不错,例如:
DateOfWorkCompletion 是明天,然后工作列表显示传达“在@TimeToEnd day 结束报价”,但如果明天到来,我刷新页面文本仍然相同。为什么?我该怎么办?
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>
}
如果 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");
我想在我的 Web 应用程序上有一个类似于“计时器”的东西来结束我的工作订单。如果我添加新工作,一切看起来都不错,例如: DateOfWorkCompletion 是明天,然后工作列表显示传达“在@TimeToEnd day 结束报价”,但如果明天到来,我刷新页面文本仍然相同。为什么?我该怎么办?
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>
}
如果 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");