2014-02-28 92 views
1
new Date(Date.parse("A49")) 
// Invalid Date 

new Date(Date.parse("A 49")) 
// Fri Jan 01 2049 00:00:00 GMT+0600 (Ekaterinburg Standard Time) 

new Date(Date.parse("Aasdfashdkfjahslkdf 49")) 
// Fri Jan 01 2049 00:00:00 GMT+0600 (Ekaterinburg Standard Time) 

爲什麼「A 49」有效DateTime?JavaScript:new Date(Date.parse(「A 49」))

+0

注意'Date.parse'是不可靠的,並且可以在不同的瀏覽器的工作完全不同。 – adeneo

回答

0

因爲它的解析A 49只有49提取並假設它的開始的2049

2

解析器忽略了你一個(因爲你的A可以是這樣一個分離器或只是一些用戶的文本有沒有關係日期),只是選擇了數字,並把它作爲一年。但是如果你給這個數字添加一個字母,解析器就無法將它識別爲一個數字,因此不能將它轉換爲日期。

例子:

new Date(Date.parse("A 49")) 
//Fri Jan 01 2049 00:00:00 GMT+0100 (W. Europe Standard Time) 

new Date(Date.parse("OTHER 49")) 
//Fri Jan 01 2049 00:00:00 GMT+0100 (W. Europe Standard Time) 

new Date(Date.parse("OTHER 10")) 
//Mon Oct 01 2001 00:00:00 GMT+0200 (W. Europe Daylight Time) 

new Date(Date.parse("OTHER 10a")) 
//Invalid Date 

new Date(Date.parse("OTHER 10 10")) 
//Wed Oct 10 2001 00:00:00 GMT+0200 (W. Europe Daylight Time) 

More about Date.parse("...")