如何解决日期函数new Date()浏览器兼容性问题

项目上与时间相关的地方特别多,与时间格式相关都使用了moment.js轻量级日期处理库,在开发中出现了几次浏览器兼容性问题,所以总结一下new Date()和moment.js在各大浏览器中兼容性问题,方便记忆或查阅。

后台传回来的时间格式一般是字符串“2017-9-10 21:02:02”;

然后将字符串转化为标准时间:

var str = "2017-9-10 21:12:20";
var time = new Date(str);
console.log(time);

然后查看了一下,在chrome,firefox较新版本表现正常,在firefox老版本和ie中输出invalid date。

了解其原因,不是浏览器都支持“-”,“/”才是被各大浏览器广泛支持的。即把“-”替换为“/”即可解决问题。

var time = new Date(str.replace("-", "/").replace("-", "/"));

或者

var time = new Date(str.replace(/-/g,"/"));

还有一种解决方法就是直接用从字符串中获取年月日时分秒的数字来生成日期:

var time = new Date("2017","9","10","21","33","33",);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)

    IE中new Date(strDate)返回无效时间解决方式: 方法一: function getDateForStringDate(strDate){ //切割年月日与时分秒称为数组 var s = strDate.split(" "); var s1 = s[0].split("-"); var s2 = s[1].split(":"); if(s2.length==2){ s2.push("00"); } return

  • 微信小程序 时间格式化(util.formatTime(new Date))详解

    微信小程序 时间格式化 微信小程序虽然还在内测,但是已经火的不行.赶紧看看.记录学习路上的点点滴滴. 获取时间直接用 Date.now() 得到一串数字.如下图: 获取格式化的时间用 util.formatTime(new Date) util是微信官方demo里面的提供的工具:如下代码 function formatTime(date) { var year = date.getFullYear() var month = date.getMonth() + 1 var day = date.

  • javascript中IE浏览器不支持NEW DATE()带参数的解决方法

    复制代码 代码如下: var date1=new Date(dateTimes[z][1]); 在火狐下 可以正常取得时间,在IE7下 却是 NaN.纠结老长时间,放弃了new date 然后再老外的论坛中找了一段段代码可以兼容所有浏览器的格式化日期代码: 复制代码 代码如下: function NewDate(str) { str = str.split('-'); var date = new Date(); date.setUTCFullYear(str[0], str[1] - 1, s

  • js中获取时间new Date()的全面介绍

    var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 何问起 hovertree.com myDate.getTime(); /

  • Javascript new Date().valueOf()的作用与时间戳由来详解

    众所周知PHP中对时间类型数据可以直接转换为时间戳,那么在前端脚本js中,也有方法可以实现,就是valueOf() 例如,我们可以通过这段代码输出当前时间点的时间戳 复制代码 代码如下: <script type="text/javascript">  document.write(new Date().valueOf());</script> 那么何为时间戳呢? 时间戳就是从1970年1月1日0时0分0秒到当前时间点的所有秒数.1970.1.1 0:0:0 这

  • javascript中日期函数new Date()的浏览器兼容性问题

    同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异.本文将基于new Date来创建Date对象来分析这个问题. 1.  问题的提出, 开始时间和结束时间空间无法正确的传递值 在页面中,我们使用了一个时间上的组件来开发时间选择框,但是发现在Firefox下是无法正常工作的,在Chrome下是可以正常运行的. 问题出在哪里呢? 2.  问题分析 结果分析发现是由于如下代码产生的问题: var timestart = '20

  • ie8 不支持new Date(2012-11-10)问题的解决方法

    我们在使用JS的时候也碰到了如此问题,后来经过修改,在IE8环境里,下面的代码是可用的. js 结束时间-开始时间,得到天数 复制代码 代码如下: function getDays(strDateStart,strDateEnd){ var strSeparator = "-"; //日期分隔符 var oDate1; var oDate2; var iDays; oDate1= strDateStart.split(strSeparator); oDate2= strDateEnd.

  • 如何解决日期函数new Date()浏览器兼容性问题

    项目上与时间相关的地方特别多,与时间格式相关都使用了moment.js轻量级日期处理库,在开发中出现了几次浏览器兼容性问题,所以总结一下new Date()和moment.js在各大浏览器中兼容性问题,方便记忆或查阅. 后台传回来的时间格式一般是字符串"2017-9-10 21:02:02": 然后将字符串转化为标准时间: var str = "2017-9-10 21:12:20"; var time = new Date(str); console.log(ti

  • js Date()日期函数浏览器兼容问题解决方法

    一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中的某些格式浏览器不兼容. 1. 无参 //无参 所有浏览器都兼容 var dateTime = new Date(); 2.日期参数 //日期参数 格式1 var dateTime = new Date("2017-09-12"); a. IE > IE9-(不兼容) > IE

  • JavaScript的new date等日期函数在safari中遇到的坑

    最近在做移动Web的时候,在PC上用Chrome调试都成功了,但是在iPhone上真机一测就出现了奇怪的问题.经过一系列调试发现是日期相关的地方出现了问题.起初怀疑是生产环境的问题,但用Mac版的safari调试本地也出现了同样的问题.查阅一些资料后发现,safari中对于JavaScript的new Date函数的支持有一个比较奇怪的问题. 通常,由于习惯了SQL中的datetime格式,日期是打成yyyy-mm-dd的格式,然而,safari竟然不支持这样的格式,所以当你输入如下语句时,会返

  • JavaScript中解决多浏览器兼容性23个问题的快速解决方法

    一.document.formName.item("itemName") 问题 问题说明:IE下,可以使用 document.formName.item("itemName") 或 document.formName.elements ["elementName"]:Firefox 下,只能使用document.formName.elements["elementName"]. 解决方法:统一使用document.formNa

  • 解决layui数据表格Date日期格式的回显Object的问题

    有属性: private Date createtime; 但是回显的时候,显示{ Object object },想要转换成字符串格式显示. layui中显示: 在对应的实体类中添加属性:private String createtimestr; 然后添加对应的set/get方法,但是方法处理的是createtime 但是在Mybatis-plus框架映射时,数据库表里面又没有该字段,获取数据的时候会报异常,unknown field "createtimestr" in table

  • PHP日期函数date格式化UNIX时间的方法

    本文实例讲述了PHP日期函数date格式化UNIX时间的方法.分享给大家供大家参考.具体分析如下: 日期函数可以根据指定的格式将一个unix时间格式化成想要的文本输出 使用到函数语法如下 string date (string $Format); string date (string $Format, int $Time); 下面是演示代码 <?php echo "When this page was loaded,\n"; echo 'It was then ', date

  • jQuery解决浏览器兼容性问题案例分析

    本文实例分析了jQuery解决浏览器兼容性问题的方法.分享给大家供大家参考,具体如下: 问题: 当用户在名为abc的input控件按下回车键时,触发另一控件imgLogin的click事件 在IE 中 document.getElementById('abc').click();能够调用abc的click事件 但是在FF中却不行. 解决方法: 必须以下这样: var evt = document.createEvent("MouseEvents"); evt.initEvent(&qu

  • Ext JS框架中日期函数的用法及日期选择控件的实现

    Ext.Date是一个单例,封装了一系列日期操作函数,扩展JavaScript Date的功能,下面列出一些常用的功能. 基本函数: Ext.Date.add(date, interval, value) 给date增加或减少时间,这个函数不改变原有Date对象的值,而是返回一个新的Date对象. Ext.Date.between(date, start, end) 判断date是否在start和end之间. Ext.Date.clearTime(date, clone) 把date的时间设置成

  • PHP系列学习之日期函数使用介绍

    介绍 PHP是一门非常令人惊奇的语言.它足够强大(最大的博客(wordpress)的核心语言),它足够广泛(运行在最大社交网站facebook上),它足够简单(作为初学者首选入门语言).在低成本的机器上运行良好.而且php语言有很多非常不错的服务器套件(如WAMP和MAMP),很方便的安装在你的机器上.PHP有非常丰富的库资源,便于开发者很容易的处理一些业务.由于我们在项目中与日期接触最多,所以今天就从日期函数入手学习. 举一个简单的date例子 我将使用echo命令把内容输出到我们的客户端(浏

随机推荐