解决IE、firefox浏览器下JS的new Date()的值为Invalid Date、NaN-NaN的问题

摘要:
当我们需要将日期字符串转换为特定的date格式时,我们通常需要使用newDate方法。当时,在IE浏览器中,出现了这个问题:newDate//返回了这个值InvalidDate。转换失败,但此方法可以在Google浏览器上返回正确的结果。NewDate//这是正确的转换。使用WedJan100:00:00UTC+080014时,可以在使用newDate()之前使用一些字符串转换方法正确转换日期字符串格式。vardate=“2016-12-1210:10:10”;date=日期。替换;//将所有“-”转换为“/”,转换为Date=newDate;因此,不同浏览器之间存在差异。以下列出了所有浏览器支持的方法。
当我们需要将一串日期字符串转换为具体的Date格式的时候,往往需要用到new Date("xxxx")方法。

当时在IE浏览器下,会遇到这种问题:

new Date('2016-01-01 00:00:00')    //却返回这个值Invalid Date,转换失败

但是这个方法却在谷歌浏览器上可以返回正确的结果。

 

解决方式:最终发现是字符串的格式不被某些浏览器失败,而导致的。

new Date('2016/01/01 00:00:00')  //这下就转换正确了Wed Jan 1 00:00:00 UTC+0800 2014 

在具体使用的时候,可以通过一些字符串转换的方式,将日期字符串格式转换正确之后,再使用new Date()。

var date="2016-12-12 10:10:10";
date=date.replace(new RegExp(/-/gm) ,"/");   //将所有的'-'转为'/'即可
Date d=new Date(date);

 

所以,不同的浏览器还是存在差异的,以下列出了所有浏览器都支持的方式。

1 var d = new Date(2011, 01, 07); // yyyy, mm-1, dd  
2 var d = new Date(2011, 01, 07, 11, 05, 00); // yyyy, mm-1, dd, hh, mm, ss  
3 var d = new Date("02/07/2011"); // "mm/dd/yyyy"  
4 var d = new Date("02/07/2011 11:05:00"); // "mm/dd/yyyy hh:mm:ss"  
5 var d = new Date(1297076700000); // milliseconds  
6 var d = new Date("Mon Feb 07 2011 11:05:00 GMT"); // ""Day Mon dd yyyy hh:mm:ss GMT/UTC

  转载于:https://www.cnblogs.com/hhzf/p/5833640.html

免责声明:文章转载自《解决IE、firefox浏览器下JS的new Date()的值为Invalid Date、NaN-NaN的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python2.7实现websocket服务器,可以在web实时显示远程服务器日志Git--删除远程仓库文件但不删除本地仓库资源下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

原生JS编写图片切换效果和点击按钮的样式变化

  这两天更进一步的了解了JS,老师让我们用原生的js编写图片切换和改变点击按钮样式,就是让我们学会怎么去把一个问题拆分,怎么将一个大问题拆分成许多的小问题,再用函数封装起来。比如一个点击按钮,让其点击时背景色发生改变,点击另一个时,上一个按钮要变回原来本有的颜色:这个问题用jquery,一行代码就搞定,但是用原生js就得分三个部分来考虑:   1.添加改...

js new Date()参数格式

最近在写页面使用new Date()获取时间戳在ie浏览器中测试发现无效;后来发现是参数格式问题, new Date()参数格式如下: 1、用整数初始化日期对象var date1 = new Date(2017,06,06); console.log(date1); // Thu Jul 06 2017 00:00:00 GMT+0800 (中国标准时间)...

vue 时间戳转换

vue 时间戳转换 //显示小时和分钟 {{ new Date( +new Date(new Date(itemC.StartTime).toJSON()) + 8 * 3600 * 1000 ) .toISOString() .replace(/T/g, " ") .replace(/.[d]{3}Z/...

python之selenium操作隐藏元素

    Fast traslate Icon translate     getElementsByTagName   GetElementsByTagName Fast traslate Icon translate 一、html显示与隐藏元素的几种方法 1、display none:...

Oracle:管理 date类型 interval 动态变化的分区:查询、删除

-- 创建临时表,目的是获取long类型的:high_value 的值 drop table syscom_tab_partition_temp purge ; create table prm8_user.syscom_tab_partition_temp (table_name varchar2(30),partition_position int,...

原生js和vue之间的数据通讯--EventEmitter

有个小项目在原来原生的框架编写,但是不想写原生,就引入了vue 然后有个需求要和原生的js进行交互通讯,于是就可以用node.js EventEmitter 具体做法: 先引入文件<script src="http://t.zoukankan.com/js/eventEmitter.js"></script>, 初始化, 然后在vu...