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

寻找问题

通过IE开发者工具控制台执行js代码发现,new Date("2014-01-01 12:11:12").getTime() 在IE下会返回NaN,而其他浏览器可以正常返回毫秒数。

由于毫秒数在IE浏览器下没有正确获得,所以在之后的计算中,计算结果为undefined

解决问题

自定义方法

自定义一个NewDate方法,通过调用NewDate方法获得毫秒数

[js]   预览 复制
  1. function NewDate(str){  
  2.   if(!str){  
  3.     return 0;  
  4.   }  
  5.   arr=str.split(" ");  
  6.   d=arr[0].split("-");  
  7.   t=arr[1].split(":");  
  8.   var date = new Date();   
  9.   date.setUTCFullYear(d[0], d[1] - 1, d[2]);   
  10.   date.setUTCHours(t[0], t[1], t[2], 0);   
  11.   return date;  
  12. }  

通过Date.parse()方法

parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。

由于parse()方法参数的日期格式为yyyy/MM/dd,所以需要将现有的日期格式通过replace()方法将日期字符串替换成yyyy/MM/dd格式。

[js]   预览 复制
  1. var date="2014-01-01 12:11:12";  
  2. Date.parse(date.replace(/-/g,"/"));  

以上两种方法支持IE和谷歌浏览器

转载于:http://blog.csdn.net/wqiancangq/article/details/52484806

猜你喜欢

转载自blog.csdn.net/dream1120757048/article/details/79570973