Как сравнить заданное время с текущим? js

Делаю сайт кинотеатра. Есть вот такая функция, которая при клике на определённую кнопку отрисовывает нужный нам зал (всего 4 кнопки). Не могу понять как добавить на эту кнопку константное время и при клике сравнивать его с текущим, и если заданное больше текущего, то данный зал нам недоступен, так как типо сеанс уже начался (или закончился). Буду благодарен за помощь.

let selectedTime = document.querySelector('.selectedTime');
let timeButton = document.querySelectorAll('.timeButton');
function drawSelectedHall() {
    for(let i = 0; i < cinemaGreenlandDraw.length; i++) {
        cinemaGreenlandDraw[i].classList.add('displayNone');
    }
    for(let i = 0; i < timeButton.length; i++) {
        timeButton[i].onclick = function(event) {
            emptyCinemaHall.innerHTML = '';
            let selectedHall,
                count = event.currentTarget.getAttribute('data-time');
            if(count) {
                selectedTime.innerHTML = '';
                selectedTime.innerHTML += `
                    <p class="selectedTime">${count}</p>
                `;
            }
            for(let j = 0; j < timeButton.length; j++) {
                timeButton[j].style.backgroundColor = '#3CB4E7';
                cinemaGreenlandDraw[j].classList.add('displayNone');
                if(cinemaGreenlandDraw[j].getAttribute('data-time') === count) {
                    selectedHall = cinemaGreenlandDraw[j];
                }
            }
            event.currentTarget.style.backgroundColor = '#3296C1';
            selectedHall.classList.remove('displayNone');
        }
    }
}
drawSelectedHall();

Ответы (1 шт):

Автор решения: DiD

Текущее время можно получить так.

let now = new Date();

Также можно получить unix_timestamp без создания нового объекта Date.

let now = Date.now();

Сравнить две даты очень просто. Выбирайте один из способов:

let date1 = new Date("2020-07-30T07:09:58.999+0300");
let date2 = new Date("2020-07-30T07:09:58.998+0300");
console.log(date1 > date2); // => true
console.log(date1 < date2); // => false

Либо приведением их к unix_timestamp методом .getTime()

let date1 = new Date("2020-07-30T07:09:58.999+0300");
let date2 = new Date("2020-07-30T07:09:58.998+0300");
console.log(date1.getTime() > date2.getTime()); // => true
console.log(date1.getTime() < date2.getTime()); // => false

Также можно сравнивать непосредственно строки:

let str1 = "2020-07-30T07:09:58.999+0300";
let str2 = "2020-07-30T07:09:58.998+0300";
console.log(str1 > str2); // => true
console.log(str1 < str2); // => false

Но это в некоторых случаях приводит к неожиданным результатам.

Например, если даты имеют такой формат:

let str1 = "2020 Jan 01 07:09:58.999+0300";
let str2 = "2020 Feb 01 07:09:58.999+0300";
console.log(str1 > str2); // => true
console.log(str1 < str2); // => false

Здесь, судя по сравнению, 1 января 2020г позже 1 февраля 2020г. Потому, что c точки зрения строк F < J.

В дате

new Date("2020-07-30T07:09:58.999+0300");
//2020 - год
//07 - месяц(июль)
//30 - число
//07 - часов
//09 - минут
//58 - секунд
//998 - милисекунд +
//0300 - часовой пояс(МСК + 3: 00)

console.log((new Date("2020-07-30T07:09:58.999+0300")).getTime())
//  => 1596082198999

→ Ссылка