Как сравнить заданное время с текущим? 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 шт):
Текущее время можно получить так.
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