JS日期比较 2013-01-31大于2013-02-01
- startDate = "2013-01-31".split('-');
- endDate = "2013-02-01".split('-');
- var startTime = new Date(startDate[0],startDate[1],startDate[2]);
- var endTime = new Date(endDate[0],endDate[1],endDate[2]);
- if(startTime>endTime){
- document.writeln("==========结束日期小于生成日期==========");
- }else{
- document.write("==========结束日期大于生成日期===========");
- }
startDate = "2013-01-31".split('-');
endDate = "2013-02-01".split('-');var startTime = new Date(startDate[0],startDate[1],startDate[2]);
var endTime = new Date(endDate[0],endDate[1],endDate[2]);if(startTime>endTime){document.writeln("==========结束日期小于生成日期==========");}else{document.write("==========结束日期大于生成日期===========");}
结果是:
==========结束日期小于生成日期==========
有些人说这是系统的BUG,其实,是程序员太粗心了。
Date构造函数第一个是年,第二是月,第三是日。
W3cshool中JavaScript Date 对象参考手册对getMonth()的描述是:从 Date 对象返回月份 (0 ~ 11)。也就是月份是从0开始的。2013-01-31传01进去相当于是设置日期为2月,再传31进去时,由于2月没有31只有28天,向前进28天,变成2013-03-03,而与之比较的是2013-02-01,所以结束日期小于生成日期。
可以把日期打印出来验证下:
- document.writeln("<br>");
- document.writeln("开始时间:"+startTime);
- document.writeln("<br>");
- document.writeln("结束时间:"+endTime);
document.writeln("<br>");
document.writeln("开始时间:"+startTime);
document.writeln("<br>");
document.writeln("结束时间:"+endTime);
结果是:
开始时间:Sun Mar 03 2013 00:00:00 GMT+0800
结束时间:Fri Mar 01 2013 00:00:00 GMT+0800
知道原因,就知道怎么处理了,办法很简单:
- var startTime = new Date(startDate[0],startDate[1]-1,startDate[2]);
- var endTime = new Date(endDate[0],endDate[1]-1,endDate[2]);
var startTime = new Date(startDate[0],startDate[1]-1,startDate[2]);
var endTime = new Date(endDate[0],endDate[1]-1,endDate[2]);
对,就这么简单,不是系统BUG,程序员粗心而已
转载于:https://www.cnblogs.com/shhaoran/archive/2013/02/02/2924542.html
JS日期比较 2013-01-31大于2013-02-01相关推荐
- 世界之窗3的广告过滤规则 2013.5.31更新
世界之窗3升级后主站论坛恢复后,更新了一下规则! 2013.5.31更新:优化遍历DOM逻辑,整个脚本代码不足50行! 终于做了个在线更新,不用在网盘上做更新了!! 在世界之窗3中进我的帖子点击那个绿 ...
- (2013.01.18-2013.07.15)179天的学习小记
(2013.01.18-2013.07.15)179天的学习小记 好久没有做个小小结咯,我的第一天学习小记是从2011.07.04开始,那时说好了在大学期间要每天记录,自我监督,就这样,这事也干了两年 ...
- SFB 项目经验-51-某上市企业2千人Exchange 2013升级2016高可用之伤01
SFB 项目经验-51-某上市企业2千人Exchange 2013升级2016高可用之伤01(带病撰写项目实战笔记) 问题描述: 2000人企业使用Exchange 2013邮件服务器标准版,n年! ...
- js日期格式判断(2018/01/30) -方法 小时分秒格式判断((HH:MM)
案例如下: //日期格式判斷 function lo_isDatePart(dateStr) { var parts; if (date ...
- js 日期对象 31 号 setMonth 的锅
前言 需求:获取当前日期的前一个月份 当月有 31 天时,JS 日期对象 setMonth 问题 1. 一般做法 当前日期如果不是 31 号, 是没问题的,是 31 号就会有问题: // 比如今天是 ...
- js 日期对象 31 号 setMonth 的锅 1
前言 需求:获取当前日期的前一个月份 当月有 31 天时,JS 日期对象 setMonth 问题 1. 一般做法 当前日期如果不是 31 号, 是没问题的,是 31 号就会有问题: // 比如今天是 ...
- JS - 日期时间比较函数
JS日期比较(yyyy-mm-dd) function duibi(a, b) {var arr = a.split("-");var starttime = new Date(a ...
- 数组排列、数组迭代、JS日期
-------W3School学习笔记-------- 数组排列 1.sort() 方法以字母顺序对数组进行排序如果数字按照字符串来排序,则 "25" 大于 "100&q ...
- 史上最详细的js日期正则表达式分享
最简单的正则 如 : /d{4}-/d{2}-/d{2} 但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题..... 对于日期的有效范围,不同的应用场景会有所不同.MSDN中定义的DateTi ...
- js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内...
/** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对 ...
最新文章
- 从疫情到求职寒冬,我的算法求职经历
- linux 创建crontab文件位置,linux - 如何通过脚本创建crontab - Ubuntu问答
- [机器学习] Boosting算法4 --- LightGBM介绍与分布式
- mysql 5.7.25 的安装与 安装错误修改 适用于5.7解压版
- java formatter()_Java Formatter locale()用法及代码示例
- .NET Core 1.0发布:微软开源跨平台大布局序幕
- 如何快速成长为技术大牛?阿里资深技术专家的经验告诉你
- 苹果谷歌双双被曝,你的手机正在窃听你的生活
- Go 语言的垃圾回收算法被吹过头?与Java比如何?
- nginx工作原理与配置
- 计算机光盘无法格式化,怎么格式化光盘啊??求解!!
- 熹妃传服务器更新维护2019年8月28,熹妃传厨艺大赛高分攻略大全
- CDlinux使用与安装
- 炮兵阵地图文详解NOI2001/POJ1185(状态压缩)
- Xilinx Zynq-7000嵌入式系统设计与实现-电子书下载-pdf
- Pycharm编译代码时出现“SyntaxError: Non-UTF-8 code starting with ‘\xca‘ in file ...“
- 北京化工大学2022-2023-1 ACM集训队每周程序设计竞赛(8)题解
- Postman实现接口自动化测试
- 儿童玩具和儿童用品美国CPC认证ASTM测试CPSIA标准大合集
- 【线性代数 宋浩】P3行列式的性质
热门文章
- Apache2.2整合PHP5.2
- Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
- 怎样解决An internal error has occurred. Index out of bounds
- [备忘]java读取与写入文件的五种方式
- 重装 IDEA 再也不怕了,一招搞定配置同步!
- MySQL 在并发场景下会遇到的问题及解决方案~
- Linux!为何他一人就写出这么强的系统,中国却做不出来?
- 别用Date了,Java8新特性之日期处理,现在学会也不迟!
- 使用 Spring Boot 开发 Web 项目
- 看完这篇还不了解 Nginx,那我就哭了!