4

我在 Chrome 中收到不正确的日期...

我的代码看起来像这样..

标题包含“2013-06-14T00:00:00”,它是从 WebAPI 返回的 C# 中的 DateTime

正如您在这两种浏览器上看到的那样.. 在此处输入图像描述

当我将它添加到这样的新javascript日期时.. var dt = new Date(title)

我在不同的浏览器中得到不同的日期...... 在此处输入图像描述

示例 - http://jsfiddle.net/RvUSq/

4

2 回答 2

14

看起来 Firefox 假设这种没有时区的日期时间格式是本地时间,而 Chrome/Webkit 假设它是 UTC。

如果api返回的日期时间是UTC,只需在字符串末尾附加一个“Z”,这样就变成了“2013-06-14T00:00:00Z”,表示时间是UTC,然后你会得到在两个浏览器中的结果相同。

于 2013-06-27T04:49:40.740 回答
3

在 C# 中将时间戳转换为ISO 8601格式的字符串,例如

var title = "14 JUN 2013 00:00:00" // printed from C#

然后使用Date构造函数

var date = new Date(title);

如果您不指定时区,则客户端计算机中的本地时区将设置为给定时间。如果您指定时区,将进行所需的计算以将日期转换为本地时区。

var title = "14 JUN 2013 00:00:00";
var date = new Date(title); // Fri Jun 14 2013 00:00:00 GMT+0530 (IST)

var title = "14 JUN 2013 00:00:00 GMT";
var date = new Date(title); // Fri Jun 14 2013 05:30:00 GMT+0530 (IST)

var title = "14 JUN 2013 00:00:00 GMT-0400";
var date = new Date(title); // Fri Jun 14 2013 09:30:00 GMT+0530 (IST)

参考:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

于 2013-06-27T05:13:11.670 回答