IE new Date()无效

引言: 同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。

我们在使用

new Date("2019-04-26 12:23:22")
let yy = time.getFullYear();
let mm = time.getMonth()+1;
let dd = time.getDate();
return yy+"-"+mm+"-"+dd;

这时候在谷歌等浏览器会显示 - 2019-04-26;
但是在万恶的ie上则是 - NaN-NaN-NaN

这里吐槽一下ie;

主要原因是, 基于’/'格式的日期字符串,才是被各个浏览器所广泛支持的,‘-’连接的日期字符串,则是只在chrome下可以正常工作。

所以

new Date("2019/04/26 12:23:22")
let yy = time.getFullYear();
let mm = time.getMonth()+1;
let dd = time.getDate();
return yy+"-"+mm+"-"+dd;

这样就好了

使用一个正则吧

function time(v) {
   let time = new Date(Date.parse(v.replace(/-/g,"/")));
   let yy = time.getFullYear();
   let mm = time.getMonth()+1;
   let dd = time.getDate();
   return yy+"-"+mm+"-"+dd;
}

拿去使用吧

你可能感兴趣的:(javascript,new,Date,IE无效)