2011-11-17 119 views
2

我想弄清楚爲什麼Date.parse(JavaScript)返回NaN時應用於看似有效的ISO 8601日期字符串,當IE9處於怪癖模式。它在標準模式下工作正常。在IE9怪癖模式Date.parse返回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"));  

與此相反,在這兩個怪癖和標準我

//Returns 1270549182000 in both Quirks and Standards Modes 
document.write(Date.parse("2010/04/06T17:19:42")); 

是任何人看到這種行爲下的作品?如果是這樣,關於爲什麼Date.parse返回NaN的任何想法?

+0

也許這會有所幫助,也許不會:[兩個類似Date.parse的情況返回不同的結果。](http://stackoverflow.com/questions/2587345/javascript-date-parse) – sdleihssirhc

回答

1

首先您應該明白怪癖模式基本上是一種IE5兼容模式。

它由沒有有效聲明觸發。 主要影響是它導致瀏覽器使用IE5盒模型,這意味着所有填充,邊距和邊框以及影響盒子大小的任何其他操作都將不正確。

因此,您的Date.parse不起作用,因爲在這些日期沒有這種功能 - 「解析ISO 8601日期」。

+0

Gotcha。謝謝(你的)信息!我知道盒子模型,但我沒有意識到Quirks會影響日期,等等。 – dda