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

你可能感兴趣的:(Date.parse)