IE浏览器new Date()带参返回undefined解决方法

Posted xianfengzhike

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE浏览器new Date()带参返回undefined解决方法相关的知识,希望对你有一定的参考价值。

问题描述

   今天给网站增加统计功能,其中一个功能为网站运行时间

此功能通过当前时间建站时间算差后计算网站运行时间为n年n天n时n分n秒,代码写完后测试浏览器显示效果时发现,非IE浏览器内核均正常显示,IE浏览器下显示效果的时候发现结果显示为:undefined年undefined天undefined时undefined分undefined秒

   经过排查,发现在IE11下,new Date("2017-09-01 15:16:16")返回undefined。

解决问题

方法一:自定义方法

    自定义一个NewDate方法:

function NewDate(str){  
  if(!str){  
    return 0;  
  }  
  arr=str.split(" ");  
  d=arr[0].split("-");  
  t=arr[1].split(":");  
  var date = new Date();   
  date.setUTCFullYear(d[0], d[1] - 1, d[2]);   
  date.setUTCHours(t[0], t[1], t[2], 0);   
  return date;  
}  

 

 方法二:通过Date.parse()方法

 ‘ 2017-09-01 15:16:16‘是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是‘ 2017/09/01 15:16:16‘。

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

var timestart = new Date(Date.parse(‘2017-09-01 15:16:16‘.replace(/-/g,"/")))

参照:https://blog.csdn.net/wqiancangq/article/details/52484806

以上是关于IE浏览器new Date()带参返回undefined解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决IEfirefox浏览器下JS的new Date()的值为Invalid Date的问题

new Date("2017-1-19")在IE8下获取日期返回NAN

转:new Date()的浏览器兼容问题

js new Date("2016-07-01 08:00:00") 格式在IE内核浏览器中显示NaN的问题

解决IEfirefox浏览器下JS的new Date()的值为Invalid DateNaN-NaN的问题

IE 下js里面new Date("2017-07-11 08:00:00") 出现NAN的问题以及解决方法