【发布时间】:2017-06-09 11:46:35
【问题描述】:
我在页面上有一个 Kendo UI MVC 网格。在这个网格中有三个日期列。日期(无时间值)作为本地时间(不是 UTC)存储在数据库中。这些列在网格中的定义如下:
columns.Bound(p => p.CloseoutDate).ClientTemplate("#= moment(CloseoutDate).format('MM/DD/YYYY') #").Width(120);
columns.Bound(p => p.BeginDate).Title("Begin Date").ClientTemplate("#= moment(BeginDate).format('MM/DD/YYYY') #").Width(110);
columns.Bound(p => p.EndDate).Title("End Date").ClientTemplate("#= moment(EndDate).format('MM/DD/YYYY') #").Width(110);
您可以看到我正在使用 moment.js 进行日期格式设置。但是,似乎现在假设这些日期是 UTC 日期并将它们转换为本地时间。显示网格时,日期如下所示:
所有这些日期都差了一天。例如,第一行应该是 1/15/2010、1/1/2010、1/15/2010。这是正常的瞬间行为吗?可以改变吗?
此外,CloseoutDate、BeginDate 和 EndDate 是实际的 C# 日期时间值。在 SQL Server 数据库中,它们被存储为日期。
【问题讨论】:
-
也许尝试将
format移动到moment(DateField)例如moment(CloseoutDate, 'MM/DD/YYYY')。来自this question. -
CloseoutDate、BeginDate和EndDate的值是哪个?这些值是字符串吗?在这种情况下,您可以使用moment(String, String)。 -
@VincenzoC - CloseoutDate、BeginDate 和 EndDate 是实际的 C# 日期时间值。在数据库中,它们被存储为日期。
-
@RandyMinder 不幸的是我对 C# 了解不够,传递给矩构造函数的是什么?
-
@VincenzoC 你的评论和我的有什么不同吗?
标签: javascript kendo-ui momentjs