无法在打字稿中检查两个日期值是否相等

时间:2018-02-26 07:51:20

标签: javascript angular typescript

var d1 = new Date("02/22/2018");
var d2 = new Date("02/22/2018");
if(d1 == d2){

}

** - 这不起作用。它总是回归虚假。但如果我写了一个条件    然后它的工作正常。**

if(d1 <= d2 && d1 >= d2){

       }

4 个答案:

答案 0 :(得分:0)

日期是对象,并通过引用进行比较,按值计算。试试这个:

d1.getTime() === d2.getTime();

答案 1 :(得分:0)

可能正在检查参考。你能试试吗

var d1 = new Date("02/22/2018");
var d2 = new Date("02/22/2018");
if(d1.getTime() === d2.getTime()){

}

答案 2 :(得分:0)

您可以使用.getTime();方法比较两个日期对象。

var d1 = new Date("02/22/2018");
var d2 = new Date("02/22/2018");

console.log(d1.getTime() == d2.getTime())

console.log(d1.valueOf() == d2.valueOf())

getTime()方法将日期作为整数返回,您在做的是比较对象而不是值。

您可以使用getTime()代替valueOf()valueOf()方法返回指定对象的原始值

答案 3 :(得分:0)

你可以这样做。

var d1 = new Date("02/22/2018");
var d2 = new Date("02/22/2018");
if (d1.getTime() === d2.getTime()) {
    console.log("same");
} else {
    console.log("differ");
}