在做一个时间控件时,需要做时间的限制,于是用到了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。
不知道还有没有更好的处理方式,求大神指教。