我试图找出为什么当IE9处于Quirks模式时,当应用于看似有效的ISO 8601日期字符串时,Date.parse(javascript)返回NaN的原因。它在标准模式下工作正常。
//ReturnsNaN in Quirks Mode, 1270574382557 in Standards Mode
document.write(Date.parse("2010-04-06T17:19:42.557"));
//Returns NaN in Quirks Mode, 1270512000000 in Standards Mode
document.write(Date.parse("2010-04-06"));
相比之下,以下适用于我的Quirks和标准
//Returns 1270549182000 in both Quirks and Standards Modes
document.write(Date.parse("2010/04/06T17:19:42"));
还有其他人看到这种行为吗?如果是这样,有关为什么Date.parse返回NaN的任何想法?
答案 0 :(得分:1)
首先,您应该了解怪癖模式基本上是IE5兼容模式。
没有有效的声明会触发它。 主要的影响是它导致浏览器使用IE5盒子模型,这意味着所有填充,边距和边框以及影响盒子大小的任何其他东西都是不正确的。
所以你的Date.parse不起作用,因为没有这样的功能 - 在那些日期“解析ISO 8601日期”。