博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一天一道兼容性】之——IE下new Date()的传参格式
阅读量:5017 次
发布时间:2019-06-12

本文共 1228 字,大约阅读时间需要 4 分钟。

少叙闲言

在表单中我们常用到输入日期,有日期就会有格式要求,所以我们会采用插件一类的方法来统一输入格式,例如yyyy-mm-dd、yyyy/mm/dd,这一类的格式在直接以字符串的形式传入Date()来获取时间对象的时候,Chrome和FF都会表现正常,但IE下全系歇菜......

正题

demo:

 

1 var time_1 = "2012-12-12";2 var time_2 = "2012/12/12";3 4 alert(new Date(time_1))  //Chrome/FF: Thu May 30 2013 09:40:45 GMT+0800 (中国标准时间)  IE678: NaN   IE9: Invalid Date5 alert(new Date(time_2))  //Chrome/FF: Thu May 30 2013 09:40:45 GMT+0800 (中国标准时间)  IE678: NaN   IE9: Invalid Date

 

解析:

IE不支持这种格式,而是支持yyyy,mm,dd,注意此处数据类型为数字类型,而且月份要减1

 

解决方案:

1 var time_1 = "2012-12-12"; 2 var time_2 = "2012/12/12"; 3 function fixDate(time) { 4     if (!document.all) { 5         return new Date(time); 6     } 7     var arr = time.split(time.match(/\D+/g)[0]); 8     return new Date(arr[0], arr[1] - 1, arr[2]); 9 }10 alert(fixDate(time_1))11 alert(fixDate(time_2))

 

汇总一下new Date的一些传参格式:

month:用英文 表示月份名称,从January到December

mth:用整数表示月份,从0(1月)到11(12月)
dd:表示一个 月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm: 分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数

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);
上面的各种创建形式都表示2006年1月12日这一天。

 

 

转载于:https://www.cnblogs.com/ccto/archive/2013/05/30/3107563.html

你可能感兴趣的文章
A Simple Tree Problem
查看>>
Modular Inverse [ZOJ 3609]
查看>>
MySQL性能测试工具之mysqlslap使用详解
查看>>
深入理解jsonp跨域请求原理
查看>>
regsvr32注册COM组件失败
查看>>
jmeter,CSV数据加载、数据库连接、正则
查看>>
MySQL学习点滴 --分区表
查看>>
4.6.1 测试基础
查看>>
洛谷 P2486 [SDOI2011]染色
查看>>
oo第三单元总结
查看>>
leetcode : Count and Say [基本功]
查看>>
洛谷 P2485 [SDOI2011]计算器 解题报告
查看>>
Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
查看>>
Node教程
查看>>
java将字段映射成另一个字段,关于 接口传参 字段不对应转换
查看>>
Redis
查看>>
HTTP(一)工作机制
查看>>
条形码扫描枪数据读取的问题
查看>>
健壮的 Java 基准测试
查看>>
phpstorm查看类的继承关系
查看>>