Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不同的浏览器对JavaScript新日期(-105998400000)返回不同的结果?_Javascript_Json_Asp.net Mvc 3 - Fatal编程技术网

为什么不同的浏览器对JavaScript新日期(-105998400000)返回不同的结果?

为什么不同的浏览器对JavaScript新日期(-105998400000)返回不同的结果?,javascript,json,asp.net-mvc-3,Javascript,Json,Asp.net Mvc 3,我使用的是ASP.NET MVC 3,默认的Json序列化程序不是在MVC4+中实现的Json.NET,我的JsonResults返回的日期看起来像/Date-105998400000/。我正在解析数字并用这个值更新日期,但是IE和Chrome之间的结果不一致 var date = new Date(-105998400000); 在各种浏览器中查看。我的结果是: IE10-1966年8月22日星期一美国东部时间23:00:00 Firefox-星期二1966年8月23日00:00:00 GM

我使用的是ASP.NET MVC 3,默认的Json序列化程序不是在MVC4+中实现的Json.NET,我的JsonResults返回的日期看起来像/Date-105998400000/。我正在解析数字并用这个值更新日期,但是IE和Chrome之间的结果不一致

var date = new Date(-105998400000);
在各种浏览器中查看。我的结果是:

IE10-1966年8月22日星期一美国东部时间23:00:00 Firefox-星期二1966年8月23日00:00:00 GMT-0400美国东部标准时间 铬-1966年8月23日星期二00:00:00 GMT-0400美国东部夏时制

我的两个客户在Chrome上看到了8月22日的约会


为什么新的日期在不同的浏览器中返回不同的UTC毫秒值?

我对这个问题的原始实现答案是,使用Json.NET序列化程序中的ISO 8601日期,而不是传统ASP.NET MVC3 Json序列化程序中的UTC毫秒偏移量


多亏了用户dandavis,我对这个奇怪的结果有了一些了解。

这与时区有关,日期以本地格式显示,但新Daten采用GMT日期。这两个客户是从西边看22号还是从西边看23号?fwiw,我在IE 10中得到的结果与我在Chrome中得到的结果相同。我想你可能是对的,这是一个时区问题。直到2006年,印第安纳州才遵守DST。如果有某种形式的UTC转换,那么返回一个时区是错误的,也许这可以解释一小时的差异?请注意,只有我的Firefox和Chrome结果在输出字符串中明确指出了GMT偏移量。你不必怀疑,这正是它的含义。芝加哥22日晚上11点和纽约23日的午夜正好是同一时刻。我不确定浏览器如何将过去的日期映射到时区,或者如何处理像印第安纳州这样的奇怪地区,我住得很近,这总是让我们感到困惑,但问题是表面的,因为所有浏览器中的实际日期都报告同一时刻。@PancakeParfait DST可能是个问题,因为IE将时间向后返回1小时。