首页 > 技术文章 > javascript中new Date浏览器兼容性处理

fhen 2016-03-04 11:34 原文

看下面的代码

<script type="text/javascript">
        var dt1 = new Date('2016-3-4 11:06:12');
        alert(dt1);
</script>

在chrome浏览器中打开没问题,在safari浏览器中打开会提示Invalid Date.

 

说明上面的写法有浏览器兼容性问题,查一下new Date的初始化参数有5种形式: 

1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss);
4)new Date(yyyy,mth,dd);
5)new Date(ms);  //参数表示需要创建的时间和 GMT时间1970年1月1日之间相差的毫秒数
比如:
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000);

所以对日期问题处理方法是重新格式化成通用日期格式

<script type="text/javascript">
        var t1 = '2016-3-4 11:06:12';
        var dt1=new Date(Date.parse(t1.replace(/-/g,"/")))
        alert(dt1);  //ok
 </script>

其中的Date.parse()函数用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数。该函数属于Date对象,所有主流浏览器均支持该函数。

 

推荐阅读