从数据库中减去2个日期

时间:2015-08-05 14:24:26

标签: c# asp.net-mvc

我有两个日期,我从数据库中提取。一个是开始时间,一个是结束时间。我想找到两个日期之间的差异,然后在同一页面上显示2之间的时间。

我在其他答案上看过这段代码,但我是新手,所以不知道放在哪里,然后在页面上显示。

var ExecutionSeconds = execution.End.Subtract(execution.Start).TotalSeconds;

非常感谢任何帮助。 谢谢

5 个答案:

答案 0 :(得分:1)

第一件事是你需要在你的控制器中DbContext从你的数据库中获取execution。然后,您可以执行代码行来确定以秒为单位的时间跨度。

第二部分是将此值赋予您的视图。例如,将其作为模型传递给View-method:

    //fetch your data and calculate ExecutionSeconds...
    return View(ExecutionSeconds);
}

在视图中,您可以通过声明@model元素并访问Model属性来访问模型:

@model Int32

@* other HTML code you need *@

<span>The timespan is @Model seconds long</span>

答案 1 :(得分:1)

一种方法是在模型上具有只读属性

.d_un.d_val & DF_1_NODELETE

或者将计算值放到ViewData或ViewBag中并从那里取值

答案 2 :(得分:1)

具有以下功能的一种方法,它可以提供天数的差异。如果你想检查js的差异,可以适当地改变功能。

public int DayDiffrenceInt(DateTime date1, DateTime date2)
    {
        var a = (date2.Date - date1.Date).Days;
        return a;
    }

答案 3 :(得分:1)

如果您的查询包含StartDateEndDate,那么您可以这样减去每一行:

var dateQuery = dateTimeQuery.Select(p => p.StartDateTime - p.EndDateTime).ToList();

然后您可以在ViewBag中分配该查询:

ViewBag.DateTimes = dateQuery;

因此,在您的视图中,您可以轻松地显示它:

foreach (var dateTime in ViewBag.DateTimes)
{
    <li>@dateTime.TotalSeconds</li>
}

答案 4 :(得分:0)

我设法使用ViewBag解决了这个问题。

控制器

ViewBag.ExecutionSeconds = (execution.End - execution.Start).TotalSeconds;

视图

@ViewBag.ExecutionSeconds