Date.parse(dateVal);
这个方法很常用,parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
可以验证输入日期是否窜在,不存在则返回NaN;可以比较两个日期的先后,或计算两个日期相差的天数。
我的需求是根据两个日期,获得日期间隔的每一天
var sTime = '2014-05-06'; var eTime = '2014-05-10'; function gdate(datestr){ var temp = datestr.split('-'); return Date.parse(temp[1]+'-'+temp[2]+'-'+temp[0]); } function gd(ts){ ts = new Date(ts); with(ts){ var y = getFullYear(), m = getMonth()+1, d = getDate(); if(m < 10) m = '0'+m; if(d < 10) d = '0'+d; return y+'-'+m+'-'+d; } } var s = gdate(sTime), e = gdate(eTime); console.log(s) console.log(e) while(s < e){ console.log(gd(s)); s+=3600*24*1000 }
在谷歌,ie上都行,就火狐无效,最后找的个细节。parse方法要求短日期可以使用"/"或"-"作为分隔符,但是必须用月/日/年的格式来表示,可以这样"05-06-2014"或"05/06/2014",问题就来了,"05-06-2014"时,firefox的返回值总是NaN,换成另一中格式就可以正常解析了,开始还以为是代码哪里出问题了,唉,细节啊!