【问题标题】:Javascript Date constructor behaves differently in IE and ChromeJavascript Date 构造函数在 IE 和 Chrome 中的行为不同
【发布时间】:2014-08-23 10:10:34
【问题描述】:

我已将系统时间设置为 UTC。

IE 10

new Date("2014-06-07T19:00:00") //6 月 7 日星期六 19:00:00 UTC+0100 2014

铬 35

new Date("2014-06-07T19:00:00") //2014 年 6 月 7 日星期六 20:00:00 GMT+0100(GMT 夏令时间)

为什么结果相差 1 小时?日期构造函数是规范的一部分,所以它应该是跨浏览器的标准?

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.3.2

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15

缺席时区偏移的值为“Z”。

(我已经想出了如何解决这个问题 - 附加时区“Z” - “2014-06-07T19:00:00Z”会产生一致的结果,但我很感兴趣的是为什么会首先发生这种情况)

编辑:

@Dark Falcon 是的,toISOString 为下面的第一个字符串产生不同的结果

http://jsfiddle.net/25UcJ/2/

<p id=container></p>

container.innerHTML = 
new Date("2014-06-07T19:00:00").toISOString() +
'<br>' +
new Date("2014-01-07T19:00:00").toISOString() +
'<br>'+
new Date("2014-06-07T19:00:00Z").toISOString();

IE

2014-06-07T18:00:00.000Z
2014-01-07T19:00:00.000Z
2014-06-07T19:00:00.000Z

2014-06-07T19:00:00.000Z
2014-01-07T19:00:00.000Z
2014-06-07T19:00:00.000Z

编辑:

不确定这是否与 new Date() works differently in Chrome and Firefox 重复,我不是在问如何解决问题,我是在问为什么首先会有差异。该问题的公认答案是“您的输入错误”。第二个答案说“规范不精确”。我认为两者都不正确 - 请注意我在规范中的引用“缺席时区偏移的值是“Z”。

【问题讨论】:

  • 您如何获得 cmets 中的日期值?听起来这可能是您如何显示它的问题,而不是如何解析它。请注意,它可能被正确解析但显示不正确,或者至少在浏览器之间不一致。你用toISOString了吗?
  • @Andy:很明显,一个日期是BST,另一个是GMT;问题是为什么它们不是格林威治标准时间。
  • @mason:链接位于问题顶部的框中,以“此问题已在此处有答案:”开头。如果您没有看到该框,请截屏并在Meta Stack Overflow 提交错误。尝试重新加载页面。

标签: javascript date cross-browser


【解决方案1】:

这条评论new Date() works differently in Chrome and Firefox 回答了这个问题。

这是 ECMAScript 5.1 规范 https://bugs.ecmascript.org/show_bug.cgi?id=112 中的一个错误。从 bug 上的 cmets 来看,Chrome 35 似乎实现了规范所说的(字面意思),而 IE 10 实现了规范的实际意图。

该错误与问题中提到的规范中的同一句话有关:

ECMA-262 第 5.1 版(第 179 页):缺席时区的值 偏移量是“Z”。

ECMAScript 6 (http://people.mozilla.org/~jorendorff/es6-draft.html) 草案版本将这句话改为:

如果时区偏移不存在,则日期时间被解释为 当地时间。

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 2013-11-03
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 2022-01-20
    • 2022-12-07
    相关资源
    最近更新 更多