2014-02-28 93 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("...")