Сравните два объекта даты в угловом 4

Я попытался сравнить два объекта даты в angular 4, но он всегда возвращал false

ниже мой фрагмент кода

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

  return (hDate === simpleDate);
}

Результат такой, как показано ниже

Пн 1 октября 2018 г. 00:00:00 GMT + 0530 (стандартное время Индии) ========== Пн 1 октября 2018 г. 00:00:00 GMT + 0530 (стандартное время Индии)

ложный

Любая идея, почему он возвращает false, когда напечатанные значения выглядят одинаково?

Включите MomentJS в свое приложение, если можете, и используйте функцию isSame для сравнения.

Ronald91 19.10.2018 15:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
5 341
3

Ответы 3

Вы можете сделать date.getTime (), а затем сравнить два числа

Вы должны сравнить даты в Date Objects. Если вы вызовете метод getDate () для объекта Date, вы получите значение true.

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

Это неверно. Date.getDate() возвращает день месяца.

Jeto 19.10.2018 15:08

Действительно пропустил это, моя ошибка, Date.toString () или Date.getTime () должны помочь;

Rob Rombouts 19.10.2018 15:15

Да или даже лучше, Date.getTime() (нет необходимости сравнивать строковые представления, когда вы можете сравнивать внутренние временные метки).

Jeto 19.10.2018 15:16

new Date вернет объект, и вы не можете сравнивать такие объекты. Попробуйте преобразовать их оба в строку, прежде чем сравнивать их.

Делай это так

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

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

Другие вопросы по теме