为什么不同的浏览器对JavaScript新日期(-105998400000)返回不同的结果?
我使用的是ASP.NET MVC 3,默认的Json序列化程序不是在MVC4+中实现的Json.NET,我的JsonResults返回的日期看起来像/Date-105998400000/。我正在解析数字并用这个值更新日期,但是IE和Chrome之间的结果不一致为什么不同的浏览器对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
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小时。