比较角度4中的两个日期对象

时间:2018-10-19 12:58:18

标签: javascript angular typescript

我试图比较角度4中的两个日期对象,但它总是返回false

下面是我的代码段

CheckForHoliday(d: Date) {
  let simpleDate = new Date(d.getFullYear(), d.getMonth(), d.getDay());
  let hDate = new Date(2018, 9, 1);
  console.log(simpleDate + "==========" + hDate);
  console.log(hDate === simpleDate);

  return (hDate === simpleDate);
}

输出如下

2018年10月1日星期一格林尼治标准时间+0530(印度标准时间)============ 2018年10月1日星期一00:00:00 GMT + 0530(印度标准时间)

false

有人知道为什么当打印的值看起来相同时它返回false吗?

3 个答案:

答案 0 :(得分:0)

您可以执行date.getTime(),然后比较两个数字

答案 1 :(得分:0)

您应该比较日期对象中的日期。如果您在日期对象上调用getDate()方法,您将获得true。

hDate.getDate() === simpleDate.getDate() //=> returns true

答案 2 :(得分:0)

new Date将返回一个对象,而您不能像这样比较对象。比较它们之前,请尝试将它们都转换为字符串。

这样做

CheckForHoliday(d: Date) {
  let simpleDate = new Date(d.getFullYear(), d.getMonth(), d.getDay());
  let hDate = new Date(2018, 9, 1);
  console.log(simpleDate + "==========" + hDate);
  console.log(hDate === simpleDate);

  return (hDate.toString() === simpleDate.toString());
}