问题时这样的
var now = new Date("2000-01-02");
var nowTime = now.getTime();
console.log(nowTime);
//ie //NAN
//Chrome //946771200000
这段代码在chrome中可以正常输出毫秒数,而在ie8中则输出NAN。
这是因为ie8不支持”2000-01-01”这种参数格式。
new Date()支持的参数格式:
(只测试了chrome,Firefox,ie8)
- “2000-01-02” chrome √ Firefox √ ie8 ×
- “2000-1-2” chrome √ Firefox √ ie8 ×
- “2000/1/2” chrome √ Firefox √ ie8 √
- “2000/01/02” chrome √ Firefox √ ie8 √
- 2000, 1, 2 chrome √ Firefox √ ie8 √
解决上述问题的方法:
可以将”2000-01-02”字符串替换为ie8兼容的写法(后三种)
var dateStr = "2000-01-02";
var newDateStr = dateStr.replace(/-/g,"/");
var now = new Date("2000-01-02");
var nowTime = now.getTime();
console.log(nowTime);
//ie //946771200000
//Chrome //946771200000
- 注:这种方法可以将前两种ie8不支持的格式转化为支持的