2017-04-26 15 views
4

爲什麼當一個不同長度的數字串被傳遞給Date時,JavaScript有時會返回一個Date對象,有時會返回Invalid Date。將一串數字傳遞給Date對象時javascript中的理解日期

例如:

  1. 新的日期( '123456') - >週二1月1 123456 00:00:00 GMT + 0530

  2. 新的日期( '1234567') - >無效日期

  3. 新的日期( '999999') - >無效的日期

+0

''123456''是[Date](https://developer.mozilla.org/en)的有效範圍內的一年/ docs/Web/JavaScript/Reference/Global_Objects/Date),其他則不是。 'JavaScript日期對象範圍相對於1970年1月1日爲-100,000,000天至100,000,000天.' – Xotic750

+1

[Minimum and maximum date]的可能重複(http://stackoverflow.com/questions/11526504/minimum-and-maximum - 日期) – Vasan

+1

和[與日期奇怪的錯誤,「未捕獲的非法訪問」](http://stackoverflow.com/questions/27598612/weird-error-with-date-uncaught-illegal-access) –

回答

2

您使用的是最新C中的方法這個字符串被解釋爲年份。然而,正如Xotic750已經指出的那樣,JavaScript的日期相對於1970年1月1日UTC只能在-100,000,000天至100,000,000天的範圍內。這意味着'123456'在範圍內,但'1234567'和'999999'不在。

請注意,由於瀏覽器之間的不一致,強烈建議使用帶有字符串的Date構造函數。最好自己解析日期,並使用構造函數需要幾年,幾個月等。

+0

只記得月 - 編號gotcha! –

相關問題