Я работаю над проектом цифровых часов с помощью Javascript, и у меня есть эта проблема, я хочу вызывать функцию каждые 1 секунду, но setinterval не работает

#javascript #function #setinterval

#javascript #функция #setinterval

Вопрос:

вот мой код javascript, который я не включил в HTML-файл, потому что все просто. время отображается на веб-странице, но секунды не работают

 const hour = document.querySelector(".hour");
const minute = document.querySelector(".minute");
const seconds = document.querySelector(".seconds");
const timeZone = document.querySelector(".timeZone");

const date = new Date();

setInterval(setTime, 1000);

function setTime() {
  hour.innerHTML = date.getHours()   " : ";
  minute.innerHTML = date.getMinutes()   " : ";
  seconds.innerHTML = date.getSeconds();
}

setTime();
 

Комментарии:

1. Вы используете статическое Date значение, его значения не изменятся. Вам нужно создать новый Date внутри вашего setTime() метода и получить его часы, минуты и секунды

Ответ №1:

Как упоминалось в комментариях, вам нужно переместить ваш объект date в вашу интервальную функцию. В противном случае, когда вы создадите экземпляр объекта date, он будет статичным, и секунды не будут увеличиваться.

Вот фрагмент его работы.

 const hour = document.querySelector(".hour");
const minute = document.querySelector(".minute");
const seconds = document.querySelector(".seconds");
const timeZone = document.querySelector(".timeZone");

debugger

setInterval(setTime, 1000);

function setTime() {
  let date = new Date();
  hour.innerHTML = date.getHours()   " : ";
  minute.innerHTML = date.getMinutes()   " : ";
  seconds.innerHTML = date.getSeconds();
}

setTime() 
 <span class="hour"></span>
<span class="minute"></span>
<span class="seconds"></span>
<span class="timeZone"></span> 

Комментарии:

1. Большое вам спасибо