问题描述

最近在webapp的开发中遇到一个Date对象中getDate获取日期的兼容性问题,Date对象的getDate方法返回的日期和传入的日期不一致,例如:

在android 4.3以下版本,getDate返回的日期会有一天的偏差

    var d = new Date('1987/04/12');d.getDate(); // 目标是返回12,但部分机型会返回11

问题排查

经过一番折腾Google搜索查找资料,初步认为是以下两个问题导致:

1、Date对象初始化兼容性问题

Date对象初始化有以下几种方式:

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);

其中,第三种方式是通过日期字符串进行初始化,这个日期字符串必须符合Date.parse()的合法日期格式。

    new Date('2016-09-25'); // 这种格式无法被所有浏览器识别,存在兼容性问题 new Date('2016/09/25'); // 基于'/'格式的日期字符串,被各个浏览器所广泛支持的

2、getDate受时区影响问题

在使用测试机进行调试的时候,把时区改变会导致取值有问题,目前还确定是什么问题。
详见getDate返回错误日期

更多阅读

getDate返回错误日期
Date对象详解
Date.parse()详解
JS原生Date类型方法的一些冷知识
http://stackoverflow.com/questions/4371252/javascript-getdate-problem?rq=1

转载于:https://www.cnblogs.com/GeniusLyzh/p/5906305.html

getDate()返回日期不一致问题引发的bug相关推荐

  1. 一个由服务器时区引发的Bug

      太阳照常升起,在每个需要挤公交车上班的日子里,即使窗外早已大雨如注.想来只有在周末,太阳会陪着我一起起床,所谓睡觉睡到自然醒,在雨天里保持晴天的心情,相当大的程度上,是因为今天不必上班.因此,一周 ...

  2. 如何仅从SQL Server DateTime数据类型返回日期

    SELECT GETDATE() 回报: 2008-09-22 15:24:13.790 我希望该日期部分没有时间部分: 2008-09-22 00:00:00.000 我该怎么办? #1楼 尝试这个 ...

  3. C 随机栈数据引发的bug

    最近处理一起客户问题,客户反馈使用我司 SDK 后偶现异常,只有重启计算机才能正常.客户的软件产品质量受到最终用户质疑,不得已只能提供排不使用我司 SDK 的"稳定版"给用户使用. ...

  4. 谷歌程序员犯低级错误?少打一个字符引发重大 Bug,致大量 Chromebook 无法解锁...

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 初学编程的程序员难免会犯一些低级错误,这不难理解. 可当这种低级错误出现在谷歌经过三个开发者版本进而推出的 Chrome OS 正式版中 ...

  5. 因OpenCV版本不一致所引发的报错

    目录 一 因OpenCV版本不一致所引发的报错 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 因OpenCV版本不一致所引发的报错 今天遇到了一个很有意思的报错. 事情是这样的, 在编译& ...

  6. Linux x86主机运行天数是是24.8的倍数都有可能引发oracle bug及解决方法

    问题是因后台无法登录发现该BUG的,连PLSQL及服务器上的oracle DBA也无法登录oracle 查看系统相关资源: 负载高,系统层的CPU使用高, 解决方法: 重启服务器,问题解决 通过查找原 ...

  7. hackintool怎么重建缓存_mysql表数据装满了怎么办?自增id引发的bug。

    国庆节的一个大清早,我就被微信群吵醒了,说是spark实时程序有问题,数据没出来,让我看看.我看了下邮箱,确实有报警信息.我特么,没办法,起床. 1 主键自增id设置不合理引发的bug 首先,我检查了 ...

  8. 关于json返回日期格式化的解决方案

    关于json返回日期格式化的解决方案 参考文章: (1)关于json返回日期格式化的解决方案 (2)https://www.cnblogs.com/ahjesus/archive/2012/12/05 ...

  9. oracle 整倍数,Linux x86主机运行天数是24.8的倍数都有可能引发Oracle bug及解决方法...

    问题是因后台无法登录发现该BUG的,连PLSQL及服务器上的Oracle DBA也无法登录oracle 查看系统相关资源: 负载高,系统层的CPU使用高, 解决方法: 重启服务器,问题解决 通过查找原 ...

最新文章

  1. ORACLE的DUAL表及DB2的SYSIBM.SYSDUMMY1
  2. 怎么学python-初学者如何学习Python?掌握这17个实用小技巧快速入门!
  3. DIV Scroll属性
  4. java解析上的jar包里的pom_Maven引入本地Jar包并打包进War包中的方法
  5. 【BZOJ4710】[JSOI2011]分特产(容斥)
  6. spring-cloud-demo
  7. Centos7 只启用iptables 禁用firewalld功能.
  8. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_3-2.使用Mybatis注解开发视频列表增删改查...
  9. P2668 斗地主 贪心+深搜
  10. 排队论模型(二):生灭过程 、 M / M /s 等待制排队模型、多服务台模型
  11. Spring5全面详解
  12. android 图片大小控制,Android实现通过手势控制图片大小缩放的方法
  13. AM5SE-IS防孤岛保护装置如何解决分布式光伏发电过程中的影响?
  14. Java英语单词大全
  15. Excel重复行删除
  16. 2021年6月PMP考试50天备考5A通过经历心得分享
  17. 白光干涉仪可以用于测量化妆品用的云母材料?
  18. [USACO12MAR]花盆Flowerpot(二分答案+单调队列)
  19. python爬取疫情数据并存入excel中(包括国内各省份,全球,国内外历史疫情数据)代码可以直接运行
  20. hosts文件如何修改?已解决

热门文章

  1. vue下拉框值改变事件_vue和element ui 下拉框select的change事件
  2. poj 1637 Sightseeing tour——最大流+欧拉回路
  3. ubuntu16.04 安装caffe以及python接口
  4. string、stringbuilder、stringbuffer区别
  5. python爬虫:两种方法模拟登录博客园
  6. openSUSE 13.1 Milestone 2 发布
  7. PHP中的stdClass 【转】
  8. Linux设备驱动程序学习(4) -高级字符驱动程序操作[(1)ioctl and llseek]
  9. JavaScript:constructor属性
  10. 暴走大侠找不到服务器了,《暴走大侠》常见问题汇总(图文)