问题:new Date("2020-05-06 16:37:56").getTime() 在IE下会返回NaN,而其他浏览器可以正常返回毫秒数。
原因:由于毫秒数在IE浏览器下没有正确获得,所以在之后的计算中,计算结果为 undefined。没有正确获得的原因时因为参数格式在 IE 中出现问题,使用 IE 的 new Date() 方法,参数中的日期格式 必须时 YYYY/MM/DD 而不能是 YYYY-MM-DD(其他浏览器中都可以)。所以我们需要做的就是转换日期格式。
解决办法:
2.使用 new Date() 方法
通过正则将日期格式字符串中的 ‘-’ 全部替换为 ‘/’ 再使用 new Date() 方法,再getTime() 就可以了。
new Date("2020-05-06 16:37:56".replace(/-/g,'/')).getTime();//1588754276000
1.通过Date.parse()方法
parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。
同上也是需要将 其中日期格式为 YYYY-MM-DD 转为 YYYY/MM/DD 就可以了
var time = '"2020-05-06 16:37:56"';
var newTime = Date.parse(time.replace(/-/g,'/'));//1588754246000