new Date处理日期格式及兼容浏览器问题
在前端处理日期格式问题,需要写日期格式的函数
 //日期格式化
   Date.prototype.format = function(fmt) { 
     var o = { 
        "M+" : this.getMonth()+1,                 //月份 
        "d+" : this.getDate(),                    //日 
        "h+" : this.getHours(),                   //小时 
        "m+" : this.getMinutes(),                 //分 
        "s+" : this.getSeconds(),                 //秒 
        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
        "S"  : this.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    }
     for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt; 

}

然后在格式化后台传过来的时间
new Date(Date.parse(assessVo.createdate.replace(/-/g,"/"))).format("yyyy.MM.dd")
assessVo.createdate是后台传过来date类型的json字符串
但是这里用到了Date.parse的方法,是因为new Date(assessVo.createdate).format("yyyy.MM.dd")
在chrom浏览器可以正常显示但是在其他浏览器就成成了invlidate或是NaN的显示,在参考了网上解决的例子:

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处理日期格式及兼容浏览器问题相关推荐

  1. linux date字符串日期格式,Linux中date用法

    1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数-d:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s:根据字符串来设置日期与时间.字符串前后 ...

  2. Unable to parse the date: 2017-12-30 日期格式转化失败

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 报错如题, 日期格式转化失败. 原因:参数是2017-09-23 这种格式,代码却是写的转为: &q ...

  3. JS 判断一个字符串是否为日期格式(兼容IOS)

    isNaN(times) 是排除了times是纯数字的情况,如果不考虑这个情况的话,isNaN(times) 这部分就不需要了 因为IOS手机上时间格式必须为'2020/12/21 20:05:05' ...

  4. @RequestBody接收Json参数 | 用自定义注解对Vo对象中Date类型日期格式校验

    标题太长有木有?主要是为了把问题描述清楚,免得进错文章. 问题描述 昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题. 要求输入的日期格式是:yyyy-MM-dd HH:mm:ss,Vo ...

  5. 【Date】日期格式转换 Thu Sep 07 2017 00:00:00 GMT+0800 (中国标准时间) 00:00:00

    /*** @Description: 将一个诡异的原始字符串格式的日期改成想要的日期格式 * @author liujunran* @date 2018年1月5日 上午11:09:18 * @vers ...

  6. Date相关日期格式转换

    var myDate = new Date();// new Date() 参数说明,使用举例 // new Date(yyyy,mth,dd,hh,mm,ss),这种方式,必须传递整型 month: ...

  7. Date型日期格式转换

    将String类型的日期转换为Date java.lang.IllegalArgumentException: Cannot format given Object as a Date String ...

  8. java日期格式匹配

    这里是项目中封装的一个日期格式匹配的工具类 package cn.zks.util;import java.text.DateFormat; import java.text.ParseExcepti ...

  9. java 毫秒转成日期格式_java-将字符串和毫秒值转化为日期格式的几种方法

    1. 将毫秒值转换为日期 public void demo1() { //获取当前时间毫秒值 long time = System.currentTimeMillis(); System.out.pr ...

最新文章

  1. java的autotype,关于 fastjson 异常 autoType is not support 问题分析解决
  2. 2021牛客暑期多校训练营2 G.League of Legends(转化+单调队列)
  3. kbengine通讯协议
  4. codeforces Round #320 (Div. 2) C. A Problem about Polyline(数学) D. Or Game(暴力,数学)
  5. thinkinjava21.4.4----java中interrupt和interrupted方法的使用和线程退出的时机
  6. gradle拷贝静态资源文件_Gradle复制文件/目录方法
  7. localhost 拒绝了我们的连接请求。_Zipkin请求链路日志聚合
  8. 北美前景最好25种职业 软件工程师独占鳌头
  9. 实现百战铁路售票系统临时车次的添加功能
  10. 关于matlab表情包,matlab表情包 - matlab微信表情包 - matlabQQ表情包 - 发表情 fabiaoqing.com...
  11. python多叉树_python中高效的四叉树实现
  12. mysql数据库repair_MySQL数据库中的REPAIRTABLE语法介绍
  13. 广域网技术——iFIT
  14. 2012 r2 万能网卡驱动_6款USB无线网卡评测
  15. Android 向右滑动关闭页面
  16. 手机锂电池规格及充电曲线
  17. 字节跳动推出在线医疗App“小荷” 品牌域名或要另辟蹊径?
  18. IE系列兼容性hack大全
  19. 用C语言栈实现进制转换
  20. Nwafu-OJ-1431 Problem b C语言实习题五——6.用指针实现子字符串提取

热门文章

  1. CAD如何转换?一招在线免费将CAD转成多种格式
  2. csharp基础练习题:计数阳性/阴性的总和【难度:0级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
  3. Java 公司财务系统 窗体程序 完整源码
  4. 大学生网页设计HTML理论介绍及常用格式
  5. 【ISO15031_OBD诊断】-0.1-Service服务概述
  6. nRF 51822 nRF52832固件升级流程
  7. 服务器集群管理应用XGS 9635OSD v2.5
  8. 卓佳集团收购亚洲市场领导企业麦迪森太平洋 进一步拓展债务服务
  9. 2019年数维杯国际大学生数学建模C题猪肉价格波动分析求解全过程文档及程序
  10. Django入门,制作在线相册管理