一尘不染

用 JavaScript 比较两个日期

javascript

有人可以建议一种方法来使用 JavaScript 比较两个日期的值大于、小于和不过去吗?这些值将来自文本框。


阅读 122

收藏
2022-02-08

共1个答案

一尘不染

Date 对象将执行您想要的操作 - 为每个日期构造一个,然后使用、>或比较它们。<``<=``>=

, ==,!=和运算===!==要求您使用date.getTime()as in

var d1 = new Date();
var d2 = new Date(d1);
var same = d1.getTime() === d2.getTime();
var notSame = d1.getTime() !== d2.getTime();

需要明确的是,直接使用日期对象检查是否相等是行不通的

var d1 = new Date();
var d2 = new Date(d1);

console.log(d1 == d2);   // prints false (wrong!) 
console.log(d1 === d2);  // prints false (wrong!)
console.log(d1 != d2);   // prints true  (wrong!)
console.log(d1 !== d2);  // prints true  (wrong!)
console.log(d1.getTime() === d2.getTime()); // prints true (correct)

不过,我建议您使用下拉菜单或一些类似的受限日期输入形式而不是文本框,以免您发现自己陷入输入验证地狱。


对于好奇的date.getTime()文档

返回指定日期的数值,作为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。(之前的时间返回负值。)

2022-02-08