js, Date.parse firefox 兼容

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,换成另一中格式就可以正常解析了,开始还以为是代码哪里出问题了,唉,细节啊!

posted @ 2014-05-06 15:42  hailπ  阅读(861)  评论(0编辑  收藏  举报