关于IE不支持new Date('yyyy-mm-dd')

阅读更多

在做一个时间控件时,需要做时间的限制,于是用到了new Date('yyyy-mm-dd').getTime()来比较时间,后来测试发现,在ie上竟然功能不能实现,经过排查发现,在ie下,new Date('yyyy-mm-dd') 返回的值是NaN。

 

这时查找了一下,原来ie下支持new Date(yyyy,mmm,dd)形式。这时就又要麻烦改写格式了:

 

var time = '2015-09-1 16:11';
var newFormatTime = NewDate(time);

var date = new Date(newFormatTime[0],newFormatTime[1],newFormatTime[2],newFormatTime[3],newFormatTime[4]);

console.log(date.getTime()); //1443687060000

function NewDate(str) {
    date = str.split(' ')[0].split('-');
    time = str.split(' ')[1].split(':');
    var number = [];
    for (var i = 0; i < 3; i++) {
        number[i] = Number(date[i]);
    }

    for (var j = 3; j < 5; j++) {
        number[j] = Number(time[j - 3]);
    }
    return number;
}

 

特别无语的是ie下,new Date()传入的是一串number,我试了一下传入一串字符不管用。

比如,new Date('2015,9,1,16,11'),输出则为NaN。

 

不知道还有没有更好的处理方式,求大神指教。

你可能感兴趣的:(浏览器兼容性,ie,new,Date())