Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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
windows中的Javascript巨大日期错误。。。解决?_Javascript_Windows_Macos_Date_Internet Explorer 8 - Fatal编程技术网

windows中的Javascript巨大日期错误。。。解决?

windows中的Javascript巨大日期错误。。。解决?,javascript,windows,macos,date,internet-explorer-8,Javascript,Windows,Macos,Date,Internet Explorer 8,我的开发环境在mac中 我使用引导日期选择器在应用程序中选择日期 当我调试时在mac中选择像2013年11月27日这样的一天时,屏幕显示 day: 1385510400 同一调试工具中日期对象的转换为 Wed Nov 27 2013 00:00:00 GMT+0000 (GMT) Wed Nov 27 2013 00:00:00 GMT+0000 (GMT) 这是正确的 一切都好,因为在这里 我将代码上传到windows环境,并使用IE8打开同一页面 开始恶梦吧…: 在windows

我的开发环境在mac中

我使用引导日期选择器在应用程序中选择日期

当我调试时在mac中选择像2013年11月27日这样的一天时,屏幕显示

day: 1385510400
同一调试工具中日期对象的转换为

 Wed Nov 27 2013 00:00:00 GMT+0000 (GMT) 
 Wed Nov 27 2013 00:00:00 GMT+0000 (GMT)
这是正确的

一切都好,因为在这里

我将代码上传到windows环境,并使用IE8打开同一页面

开始恶梦吧…:

在windows中,同一天变量如下所示

day: 1385506800
同一调试工具中日期对象的转换为

 Wed Nov 27 2013 00:00:00 GMT+0000 (GMT) 
 Wed Nov 27 2013 00:00:00 GMT+0000 (GMT)
这是不对的

如果我们使用外部工具,给出IE8的那天是前一天,翻译应该是

 Tue, 26 Nov 2013 23:00:00 GMT.
我怎么能理解呢

时间戳和到日期对象的转换没有关系,显然我找不到一种方法使这两个系统都能工作

你能把我从噩梦中叫醒吗

对不起我的英语

在Chrome的JS中:

new Date(1385510400000) : Wed Nov 27 2013 01:00:00 GMT+0100    
new Date(1385506800000) : Wed Nov 27 2013 00:00:00 GMT+0100
new Date("11/27/2013")  : Wed Nov 27 2013 00:00:00 GMT+0100
请注意日期字符串的顺序,它是按美国顺序排列的 另请注意结尾处的000;JS时间戳以毫秒为单位

IE8中也是如此

Wed Nov 27 01:00:00 UTC+0100 2013
Wed Nov 27 00:00:00 UTC+0100 2013
Wed Nov 27 00:00:00 UTC+0100 2013
所以完全相同的日期,第一天的时差

如果你从所有日期中减去1小时,那么第一天是午夜,其余时间是26日晚上11点

要使其正常化,您可以执行以下操作

var d = new Date(1385510400000);
d.setHours(0,0,0);

或者更改为UTC

当我看到Wed 27 00:00:00 UTC+0000 2013时,总是先假设您做错了什么,时间戳是1385506800。。。没有逻辑错误,那是错误的!在其他浏览器中工作正常,IE8是个问题。1385510400和1385506800都是1970年1月17日的时间。1385506800=Tue,2013年11月26日23:00:00该网站的格林威治标准时间是基于1970年1月1日标准纪元后的秒数,而JS日期是基于1970年1月1日后的毫秒数。你可以展示你正在使用的JS代码,这样我们就可以准确地看到你是如何得到1385510400的?