Javascript 比较angular 4中的两个日期对象

Javascript 比较angular 4中的两个日期对象,javascript,angular,typescript,Javascript,Angular,Typescript,我试图比较angular 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

我试图比较angular 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日星期一00:00:00 GMT+0530(印度标准时间)========2018年10月1日星期一00:00:00 GMT+0530(印度标准时间)

假的


知道为什么打印的值看起来一样时返回false吗?

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

您应该比较日期对象中的日期。如果对日期对象调用getDate()方法,则会得到true

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

newdate
将返回一个对象,您无法比较这样的对象。在比较它们之前,请尝试将它们转换为字符串

像这样做

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());
}

那是不对的。返回一个月中的某一天。确实错过了这一天,我的坏消息,Date.toString()或Date.getTime()应该会起作用;是或更好,
Date.getTime()
(当您可以比较内部时间戳时,无需比较字符串表示形式)。如果可以,请将MomentJS包含到应用程序中,并使用isSame函数进行比较。