new Date处理日期格式及兼容浏览器问题
}
new Date在不同浏览器识别问题
引言: 同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异。本文将基于new Date来创建Date对象来分析这个问题。
1. 问题的提出, 开始时间和结束时间空间无法正确的传递值
在页面中,我们使用了一个时间上的组件来开发时间选择框,但是发现在Firefox下是无法正常工作的,在Chrome下是可以正常运行的。 问题出在哪里呢?
2. 问题分析
结果分析发现是由于如下代码产生的问题:
1
2
3
4
5
6
|
var timestart = '2010-05-04' ;
var timeend = '2015-04-01' ;
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. 正确的做法
以下列出正确的做法:
1
2
3
4
|
var time1 = (timestart+ ' 00:00:00' ).toString();
var time2 = (timeend+ ' 23:59:59' ).toString();
timestart = new Date(Date.parse(str.replace(/-/g, "/" ))).getTime();
timeend = new Date(Date.parse(str.replace(/-/g, "/" ))).getTime();
|
主要的变化是对默认的日期格式进行了转换, 基于'/'格式的日期字符串,才是被各个浏览器所广泛支持的,‘-’连接的日期字符串,则是只在chrome下可以正常工作。
5. 知识点总结
'2015-05-04'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是'2015/05/05'.
new Date处理日期格式及兼容浏览器问题相关推荐
- linux date字符串日期格式,Linux中date用法
1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数-d:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s:根据字符串来设置日期与时间.字符串前后 ...
- Unable to parse the date: 2017-12-30 日期格式转化失败
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 报错如题, 日期格式转化失败. 原因:参数是2017-09-23 这种格式,代码却是写的转为: &q ...
- JS 判断一个字符串是否为日期格式(兼容IOS)
isNaN(times) 是排除了times是纯数字的情况,如果不考虑这个情况的话,isNaN(times) 这部分就不需要了 因为IOS手机上时间格式必须为'2020/12/21 20:05:05' ...
- @RequestBody接收Json参数 | 用自定义注解对Vo对象中Date类型日期格式校验
标题太长有木有?主要是为了把问题描述清楚,免得进错文章. 问题描述 昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题. 要求输入的日期格式是:yyyy-MM-dd HH:mm:ss,Vo ...
- 【Date】日期格式转换 Thu Sep 07 2017 00:00:00 GMT+0800 (中国标准时间) 00:00:00
/*** @Description: 将一个诡异的原始字符串格式的日期改成想要的日期格式 * @author liujunran* @date 2018年1月5日 上午11:09:18 * @vers ...
- Date相关日期格式转换
var myDate = new Date();// new Date() 参数说明,使用举例 // new Date(yyyy,mth,dd,hh,mm,ss),这种方式,必须传递整型 month: ...
- Date型日期格式转换
将String类型的日期转换为Date java.lang.IllegalArgumentException: Cannot format given Object as a Date String ...
- java日期格式匹配
这里是项目中封装的一个日期格式匹配的工具类 package cn.zks.util;import java.text.DateFormat; import java.text.ParseExcepti ...
- java 毫秒转成日期格式_java-将字符串和毫秒值转化为日期格式的几种方法
1. 将毫秒值转换为日期 public void demo1() { //获取当前时间毫秒值 long time = System.currentTimeMillis(); System.out.pr ...
最新文章
- java的autotype,关于 fastjson 异常 autoType is not support 问题分析解决
- 2021牛客暑期多校训练营2 G.League of Legends(转化+单调队列)
- kbengine通讯协议
- codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. Or Game(暴力,数学)
- thinkinjava21.4.4----java中interrupt和interrupted方法的使用和线程退出的时机
- gradle拷贝静态资源文件_Gradle复制文件/目录方法
- localhost 拒绝了我们的连接请求。_Zipkin请求链路日志聚合
- 北美前景最好25种职业 软件工程师独占鳌头
- 实现百战铁路售票系统临时车次的添加功能
- 关于matlab表情包,matlab表情包 - matlab微信表情包 - matlabQQ表情包 - 发表情 fabiaoqing.com...
- python多叉树_python中高效的四叉树实现
- mysql数据库repair_MySQL数据库中的REPAIRTABLE语法介绍
- 广域网技术——iFIT
- 2012 r2 万能网卡驱动_6款USB无线网卡评测
- Android 向右滑动关闭页面
- 手机锂电池规格及充电曲线
- 字节跳动推出在线医疗App“小荷” 品牌域名或要另辟蹊径?
- IE系列兼容性hack大全
- 用C语言栈实现进制转换
- Nwafu-OJ-1431 Problem b C语言实习题五——6.用指针实现子字符串提取
热门文章
- CAD如何转换?一招在线免费将CAD转成多种格式
- csharp基础练习题:计数阳性/阴性的总和【难度:0级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
- Java 公司财务系统 窗体程序 完整源码
- 大学生网页设计HTML理论介绍及常用格式
- 【ISO15031_OBD诊断】-0.1-Service服务概述
- nRF 51822 nRF52832固件升级流程
- 服务器集群管理应用XGS 9635OSD v2.5
- 卓佳集团收购亚洲市场领导企业麦迪森太平洋 进一步拓展债务服务
- 2019年数维杯国际大学生数学建模C题猪肉价格波动分析求解全过程文档及程序
- Django入门,制作在线相册管理