【问题标题】:Why are my dates off by one day?为什么我的约会少了一天?
【发布时间】:2017-05-07 19:32:42
【问题描述】:

我有一个 SQL Server 表,我使用 Kendo UI Grid 在 MVC 页面中显示该表的内容。表中的一列名为 RecordDate 并且是 SQL Server 日期类型(不是日期时间变体)。

当我的页面请求数据时,我会检索一些行,转换为 Json(如下所示)并将它们返回给客户端。

return Json(resultSet, JsonRequestBehavior.AllowGet);

问题是当显示在剑道网格中时,所有日期都偏离了一天。我怀疑在此过程中会假设日期存储为 UTC 日期(它们不是),然后尝试转换为本地时间。但是,我不知道这发生在哪里,为什么以及如何阻止它。

【问题讨论】:

  • 如果在return 行设置断点,那么日期的值是多少?
  • @CodeNotFound 这确实不是一个有效的测试,因为当我在本地运行时,我的时区与表中的数据相同。这只发生在我在浏览器中运行我的应用程序并在 Azure 上点击我的代码时。
  • 你试过不同的浏览器吗?我认为 UI Grid 转换 & 显示来自 json 结果的数据时的问题。

标签: json asp.net-mvc kendo-ui kendo-grid


【解决方案1】:

我们最近遇到了一个类似的问题,有许多讨论这个问题的链接:

Stringify modifying dates

How to prevent modification of times

Server changing dates sent by client

值得注意的是,最好/最可接受的解决方案(也是我们决定使用的解决方案)似乎是使用 moment.js 包来处理日期。但是,正如您将在上面的链接中看到的那样,这是可以解释的。

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 2015-10-15
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    • 2011-08-04
    • 1970-01-01
    相关资源
    最近更新 更多