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

 更新时间:2015年09月05日 16:34:22   投稿:mdxy-dxy  
这篇文章主要介绍了javascript中日期函数new Date()的浏览器兼容性问题,需要的朋友可以参考下

同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。

1.  问题的提出, 开始时间和结束时间空间无法正确的传递值

    在页面中,我们使用了一个时间上的组件来开发时间选择框,但是发现在Firefox下是无法正常工作的,在Chrome下是可以正常运行的。 问题出在哪里呢?

2.  问题分析

    结果分析发现是由于如下代码产生的问题:  

var timestart = '2010-05-04';
var timeend = '2015-09-05';
var time1 = (timestart+' 00:00:00').toString();
var time2 = (timeend+' 23:59:59').toString();
timestart = new Date(time1);
timeend = new Date(time2);

  问题就在于 new Date(time1)这个构造函数无法正确的生成Date对象,其值为NaN. 怪哉,问题在哪里呢?

3. 各个浏览器上的表现

  在IE下的执行情况:

  

 在Firefox下的执行情况:

    在Chrome下的执行情况:

   

    通过以上的分析,可以得知,这个javascript的脚本在Chrome下是可以正确执行的,但是在其他浏览器下报出错误。

4. 正确的做法

以下列出正确的做法:

 var time1 = (timestart+' 00:00:00').toString();
 var time2 = (timeend+' 23:59:59').toString();
 timestart = new Date(Date.parse(time1.replace(/-/g,"/"))).getTime();
 timeend = new Date(Date.parse(time2.replace(/-/g,"/"))).getTime();

主要的变化是对默认的日期格式进行了转换, 基于'/'格式的日期字符串,才是被各个浏览器所广泛支持的,‘-'连接的日期字符串,则是只在chrome下可以正常工作。

5. 知识点总结

'2015-09-05'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是'2015/09/06'.

相关文章

  • 封装了一个js图片轮换效果的函数

    封装了一个js图片轮换效果的函数

    图片轮换的效果随处可见,但是我还是试着封装了一个函数。一个页面上可以多次调用。。。由于初学代码写的不是多好,其中有个文件是可以踢出到一个js文件里的,这是为了测试方便,我都给放在了一个页面里了。
    2011-09-09
  • javascript+html5实现绘制圆环的方法

    javascript+html5实现绘制圆环的方法

    这篇文章主要介绍了javascript+html5实现绘制圆环的方法,实例分析了javascript实现html5基于canvas绘制圆环的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 微信小程序rich-text富文本用法实例分析

    微信小程序rich-text富文本用法实例分析

    这篇文章主要介绍了微信小程序rich-text富文本用法,结合实例形式分析了微信小程序rich-text富文本插件的功能、用法及相关操作注意事项,需要的朋友可以参考下
    2019-05-05
  • js+css实现的简单易用兼容好的分页

    js+css实现的简单易用兼容好的分页

    使用html、js、css实现的简单易用兼容好的分页,具体的实现如下,感兴趣的朋友可以参考下
    2013-12-12
  • 前端图片加载错误的多种原因分析

    前端图片加载错误的多种原因分析

    在浏览网页或使用应用程序时,图片加载失败是一个常见的问题,下面这篇文章主要介绍了前端图片加载错误的多种原因分析的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • js中Number数字数值运算后值不对的解决方法

    js中Number数字数值运算后值不对的解决方法

    下面小编就为大家带来一篇js中Number数字数值运算后值不对的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 各情景下元素宽高的获取实现代码

    各情景下元素宽高的获取实现代码

    为了叙述简单,这里仅拿width示例。获取元素的offsetWidth/offsetHeight,减去元素的padding和border。
    2011-09-09
  • 6个DIV 135或246间隔一秒轮番显示效果

    6个DIV 135或246间隔一秒轮番显示效果

    6个DIV 间隔一秒 轮番进行奇偶显示. 比如先135 一秒后 246 然后再135 循环
    2010-07-07
  • 微信小程序实现MUI数字输入框效果

    微信小程序实现MUI数字输入框效果

    这篇文章主要为大家详细介绍了微信小程序实现MUI数字输入框效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • JavaScript删除数组中指定元素5种方法例子

    JavaScript删除数组中指定元素5种方法例子

    这篇文章主要给大家介绍了关于JavaScript删除数组中指定元素5种方法,在最近的项目中,有用到js对数组的操作,所以这里总结一下,需要的朋友可以参考下
    2023-07-07

最新评论