2011-11-01 96 views
15

我有一个senario,我必须解析两个日期,例如开始日期和结束日期。在Chrome浏览器中返回NaN的Jquery Date.parse?

var startdate = '02/01/2011'; 
var enddate = '31/12/2011'; 

但如果警报开始日期

alert(Date.Parse(startdate)); i will get 1296498600000 

,但如果我提醒结束日期

alert(Date.Parse(enddate)); i will get NaN 

但这是工作在其他浏览器除了浏览器,但在其他浏览器

alert(Date.Parse(enddate)); i will get 1370889000000 

任何人都可以有一个解决方法呢?

+2

无法重现,工作对我来说:HTTP://的jsfiddle .net/b77DE/1/ –

+0

对我来说也适用于Chrome。 – Connell

+0

哦,顺便说一句,[parse](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse)方法期望字符串被格式化为RFC822或ISO 8601的日期。 –

回答

10

如果要分析没有本地差异的日期,请使用下,而不是Date.parse()

var enddate = '31/12/2011'; //DD/MM/YYYY 
var split = enddate.split('/'); 
// Month is zero-indexed so subtract one from the month inside the constructor 
var date = new Date(split[2], split[1] - 1, split[0]); //Y M D 
var timestamp = date.getTime(); 

参见:Date

+0

这帮助我解决了很多问题,谢谢Rob –

+0

谢谢,碰到类似的bug,你救了我,+1 – iamserious

+0

小心使用它 - 它只是抓到我,因为月份似乎被索引为0,出于某种奇怪的原因... var date = new Date(split [2],parseInt(split [1] - 1),split [0]);虽然工作。 –

2

根据this

dateString 表示RFC822或ISO 8601的日期的字符串。

我试过了你的代码,我也得到NaN为结束日期,但如果我交换日期和月份周围,它工作正常。

相关问题