Проблема вызвана Date.now()
, оно включает текущее время. Поэтому, если вы проверяете 28/10/2019
, то 2019-10-28T00: 00: 00 почти наверняка предшествует сегодняшней дате с компонентом времени:
(selectedDate >= today && plusSixMonths > selectedDate)
становится
(2019-10-28T00:00:00 >= 2019-10-28T11:02:32 && 2020-04-28T11:02:32 > 2019-10-28T00:00:00)
, чтобудет false
.
Вам нужно удалить компоненты времени из today
(new Date()
также получает текущее время как объект даты)
let today = new Date();
// set hours, minutes, seconds and milliseconds to zero i.e. 12am
today.setHours(0, 0, 0, 0);
Тогда вы сможете выполнить сравнение, как и ожидали.
Обновление Спасибо RobG за то, что он указал, что setHours также может устанавливать минуты, секунды и миллисекунды.