Почему не срабатывает setInterval
Вот мой код: setInterval() не обновляется. Только если перезагрузить страницу. код HTML
<div class="wrapper">
<span class="days">00</span>
<span class="hours">00</span>
<span class="minutes">00</span>
<span class="seconds">00</span>
</div>
У меня есть функция которая считывает разницу в днях, часах, минутах и сeкундах который возвращает обьект с этими данными
const deadline = new Date("2024-05-31");
const dayNow = new Date("2024-05-11");
function getTimeRemaining(endTime) {
const time = Math.abs(dayNow.getTime() - endTime.getTime()); // 1728000000
const days = Math.floor(time / (1000 * 60 * 60 * 24)); // Math.floor(time / (1000 * 60 * 60 * 24))
const hours = Math.floor((time / (1000 * 60 * 60)) % 24); // Math.floor((time / (1000 * 60 * 60)) % 24)
const minutes = Math.floor(((time / 1000) * 60) % 60); // Math.floor((time / (1000 * 60)) % 60)
const seconds = Math.floor((time / 1000) % 60); // Math.floor((time / 1000) % 60)
return {
time,
days,
hours,
minutes,
seconds,
};
}
Далее я создаю функцию (setClock) которая дает доступ к значениям внутри тега span. И в этой же функции я создаю новую функцию (updateClock) которая меняет значения в теге span. Далее я создаю setInterval где вызываю функцию (updateClock) каждую секунду. но у меня он не реаботает. А при обновлении я вижу как меняется значение в секундах.
function setClock(selector, endTime) {
const wrapper = document.querySelector(selector),
days = document.querySelector(".days"),
hours = document.querySelector(".hours"),
minutes = document.querySelector(".minutes"),
seconds = document.querySelector(".seconds");
const setTimeInterval = setInterval(updateClock, 1000);
function updateClock() {
days.innerHTML = getTimeRemaining(endTime).days;
hours.innerHTML = getTimeRemaining(endTime).hours;
minutes.innerHTML = getTimeRemaining(endTime).minutes;
seconds.innerHTML = getTimeRemaining(endTime).seconds;
}
updateClock();
}
setClock(".wrapper", deadline);