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

当我们需要将一串日期字符串转换为具体的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(/-/,"/");
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
时间: 2024-07-28 13:33:03

解决IE、firefox浏览器下JS的new Date()的值为Invalid Date的问题的相关文章

不同浏览器下js的字符串split方法的差异

嘛,最近在各种直接拿代码调试,发现的问题可能稍微多了一点,姑且都记下来,这个随笔以后可能会不定期更新,因为相信不同浏览器之间各种差异还是很多的. 直接上代码 1 <html> 2 <head> 3 </head> 4 5 <body> 6 <script> 7 var str = "/part1/part2"; 8 var _list = str.split(/[\\/]/); 9 for(var i = 0; i <

解决苹果手机Safari浏览器下 字体显示为 蓝色的 问题

解决苹果手机 Safari浏览器下   字体显示为蓝色的 问题 近期测试同学测试,wap站上,底部文字在苹果8上面 ,使用 Safari浏览器打开,一直显示 蓝色字体 其他正常,寻找半天无解,最后 阳仔 小伙伴 猛然想起来,这是 不兼容,少了一句meta标签 在 head区域 添加上 这句话 即可  ,正常显示 字体颜色了 <meta name="format-detection" content="telephone=no"> 原文地址:https:/

解决SWFUpload在Chrome、Firefox浏览器下session找不到的问题

SWFUpload是一个非常不错的异步上传组件,但是在Chrome.Firefox等浏览器下使用的时候会有问题.问题如下:为了防止跳过上传页面直 接向“接受SWFUpload上传的一般处理程序”(假如是Upload.ashx)发送请求造成WebShell漏洞,我的系统中对于 Upload.ashx进行了权限控制,只有登录用户才能进行上传.在IE下没问题,但是在Chrome下运行报错“用户未登录”. 经过搜索得知:因为SWFUpload是靠Flash进行上传的,Flash在IE下会把当前页面的Co

jquery中ajax在firefox浏览器下“object XMLDocument”返回结果的解决办法

asp.net中借助jquery的ajax处理功能,使用起来很方便.但是在firefox下获得的data报错object XMLDocument.这是因为默认的情况下把datatype用html来解析了,所以只要设置一下datatype就可轻松解决了. $.ajax({ type: "get", cache: false, url: "/bubuko_checkLogin.aspx", data: "", dataType: "text

转-firefox浏览器下margin-top不起作用的原因和对策

"collapsing margins"(折叠margin)的意思是:2个或以上盒模型之间(关系可以是相邻或嵌套)相邻的margin属性(这之间不能有非空内容. padding区域.border边框或使用清除分离方法)结合表示为一个单独的margin. 在css2.1中,水平的margin不会被折叠. 垂直margin可能在一些盒模型中被折叠: 1.在常规文档流中,2个或以上的块级盒模型相邻的垂直margin会被折叠. 最终的margin值计算方法如下: a.全部都为正值,取最大者:

解决在IE11浏览器下,JQuery的AJAX方法不响应问题

在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二次就不在响应 例如:下拉框的数据第一次加载会通过AJAX调用后端方法,但是第二次之后就不在调用后端 问题原因: IE的浏览器缓存机制不大好,为了防止AJAX的不停的提交,当参数没有改变的时候,将不再响应AJAX,会直接返回. 就是IE对于相同的参数,只会请求一次 解决方法: 使用AJAX传递参数的时

firefox(火狐)下 js中设置checkbox属性checked=&quot;checked&quot;已有,但复选框却不显示勾选的原因

刚看到问题时以为是浏览器兼容性的原因,ie.google都能正常显示. 网上查询之后发现是jQuery的attr()方法用的不恰当. jQuery1.6之前使用attr()可以修改 ,从jQuery 1.6开始,attr()方法返回undefined尚未设置的属性,对于设置checked这种类型的属性使用prop()来设置. jquey官网给出的两个方法的说明: 获取匹配元素集中第一个元素的属性值,或为每个匹配元素设置一个或多个属性. 并指出检索和修改DOM属性,如checked,selecte

IE浏览器下ajax缓存导致数据不更新的解决方法

摘自:http://www.iefans.net/ie-ajax-json-shuju-huancun/ 最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,最后在网上查了些资料终于解决了IE浏览器下的问题. 方法就是在你的请求的URL 后面设置个可变的参数,比如: Java代码 $.getJSON

firefox浏览器播放音频

之前做的系统,在firefox浏览器下有更好的使用体验.因此要求客户统一使用firefox浏览器,前段时间客户要求在系统中加入音频效果. 在网上查了下,主要用到的标签有<bgsound>, <embd>, <audio>等等.其中<audio>标签是html5中新加入的对声音定义的标签.<bgsound>是IE的专用标签,只适用于IE浏览器.<embd>标签在firefox下,会要求你安装相关的插件.还好目前的新版本firefox浏览