js中比较两个日期
先得到两个字符串格式的日期,然后通过正则统一格式,将'2016-8-13'输出为'2016/8/23'。最后生成new Date的进行比较,需要注意的是JavaScript日期比较只能使用关系运算符< <= > >=。相等运算符==,!=,===,!==不能用于比较(的值)日期,因为:
- 对于严格或抽象的比较,两个不同的对象永远不会相等。
- 比较对象的表达式仅在操作数引用同一个对象时才为真。
方式一:关系运算符进行比较
1.你有2个从输入中得到的字符串值,你想比较它们,如下:
var date1 = '01/12/2018';
var date2 = '12/12/2018';
2.需要Date Object将它们作为日期值进行比较,因此只需将它们转换为日期,使用new Date():
date1 = new Date(date1);
date2 = new Date(date2);
3.现在简单地比较它们,使用> < >= <=
date1 > date2; //false
date1 < date2; //true
date1 >= date2; //false
date1 <= date2; //true封装成函数:
比如判断日期1是否大于日期2,代码如下:
function compareDate(s1,s2){
return ((new Date(s1.replace(/-/g,"\/")))>(new Date(s2.replace(/-/g,"\/"))));
}let date1='2016-8-13'
let date2='2016-8-23' //字符串日期
compareDate(date1,date2)
//输入false-1 如果 a < b
0 如果 a = b
1 如果 a > b
如果 a 或 b 是非法日期,则为 NaN
方式二: 相等运算符进行比较
如果我们需要使用运算符==,!=,===,!==来比较日期,则需要转换为时间戳或者数字进行。下面介绍获取日期时间戳的方式。
第一种方法:
var timestamp =Date.parse(new Date());注意:这里得到的结果将后三位(毫秒)转换成了000显示,使用时可能会出现问题。例如动态添加页面元素id的时候,不建议使用。
第二种方法:
var timestamp =(new Date()).valueOf();第三种方法:
var timestamp=new Date().getTime();本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!