天天看点

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;
}           

拿去使用吧

原文链接-我的博客:

https://blog.csdn.net/qq_36208461/article/details/89531292?spm=1001.2014.3001.5501

继续阅读