setInterval计时器结果未在innerHTML上更新

时间:2019-10-04 14:20:57

标签: javascript

我有一个简单的倒计时代码在Javascript上运行,当我运行此代码时,

    setInterval(function() {
    var currentTime = new Date();
    var futureTime = new Date(countDownDate);
    var s = futureTime.getTime() - currentTime.getTime();
    (seconds = parseInt((s / 1000) % 60)),
    (minutes = parseInt((s / (1000 * 60)) % 60)),
    (hours = parseInt((s / (1000 * 60 * 60)) % 24));

    hours = hours < 10 ? "0" + hours : hours;
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;

    var documenttitle = hours + ":" + minutes + ":" + seconds;

    console.log(documenttitle);

        var remainingtime = documenttitle
        document.getElementById("remaining").innerHTML = remainingtime;
    }, 500);

console.log的结果很好, Console.log of the code 但是innerHTML经常出现故障。闪烁两个不同的数字,但不更新。我该如何解决?

1 个答案:

答案 0 :(得分:0)

我看不到您的代码有任何问题,下面的代码与您的代码相同,但是定义了变量countDownDate。 也许这是您的代码中存在其他问题。

 var countDownDate = new Date();
 countDownDate.setMinutes ( countDownDate.getMinutes() + 30 );
 
 setInterval(function() {
    var currentTime = new Date();
    var futureTime = new Date(countDownDate);
    var s = futureTime.getTime() - currentTime.getTime();
    (seconds = parseInt((s / 1000) % 60)),
    (minutes = parseInt((s / (1000 * 60)) % 60)),
    (hours = parseInt((s / (1000 * 60 * 60)) % 24));

    hours = hours < 10 ? "0" + hours : hours;
    minutes = minutes < 10 ? "0" + minutes : minutes;
    seconds = seconds < 10 ? "0" + seconds : seconds;

    var documenttitle = hours + ":" + minutes + ":" + seconds;

    console.log(documenttitle);

        var remainingtime = documenttitle
        document.getElementById("remaining").innerHTML = remainingtime;
    }, 500);
<div id="remaining">
  0
</div>