Почему текущее время, отображаемое с помощью JavaScript, не обновляется без перезагрузки страницы? - PullRequest
0 голосов
/ 15 января 2019

На моем веб-сайте я хочу, чтобы время отображалось в режиме реального времени и обновлялось автоматически, без необходимости обновления страницы.

У меня есть в заголовке index.php следующее:

<script src="/../scripts/time.js"></script>

time.js - скрипт ниже:

var currentTime = new Date(),
      hours = currentTime.getHours(),
      minutes = currentTime.getMinutes();
    if (minutes < 10) {
     minutes = "0" + minutes;
  }
    document.write(hours + ":" + minutes)

Он действительно правильно показывает текущее время, но не обновляется без обновления / перезагрузки веб-страницы. Я считаю, что на самом деле он должен обновляться автоматически, поскольку он в JavaScript (который, как известно, способен это делать).

Что я мог сделать не так?

1 Ответ

0 голосов
/ 15 января 2019

Вы взяли currentTime только один раз. Вы должны получить их по «интервалам». Вот пример кода, взятого с w3schools.com: Window clearInterval () Method :

<!DOCTYPE html>
<html>
<body>

<p>A script on this page starts this clock:</p>

<p id="demo"></p>

<button onclick="myStopFunction()">Stop time</button>

<script>
var myVar = setInterval(myTimer, 1000);

function myTimer() {
  var d = new Date();
  var t = d.toLocaleTimeString();
  document.getElementById("demo").innerHTML = t;
}

function myStopFunction() {
  clearInterval(myVar);
}
</script>

</body>
</html>

См. Рабочий код здесь .

Примечание: Намеренно привел пример clearInterval(), чтобы сделать шаг к пониманию идеи.

...