倒计时计时器需要显示秒,目前只是显示完成时

Countdown timer needing to display seconds, currently just shows when finished

本文关键字:显示 目前 完成时 计时器 倒计时      更新时间:2023-09-26

我有这样的代码:

var delta = data[1];
            var expire = new Date();
            expire.setSeconds(expire.getSeconds() + delta);
            var tick = function() {
                var now = new Date();
                if (now > expire) {
                    return false;
                }
                return true;
            };
            var cancel = setInterval(function() {
                if (!tick()) {
                    clearInterval(cancel);
                }
            }, 1000);

data[1]是倒计时所需的秒数。

当前它只是在它结束时重置,但我想在控制台显示每tick剩余的秒数,我怎么能去做这个?

与其依赖日期(这绝对是一种可能性),如果你想让它像你的规格说明一样简单,我建议使用一个倒计时变量。

var currentTime = delta;
var timer = setInterval(function () {
     if (currentTime == 0) {
         clearInterval(timer);
     }
     else {
         currentTime--;
         console.log(currentTime);
     }
}, 1000);

您可以尝试返回剩余时间而不是true:

var remaining = 5e3;
var start = new Date();
var tick = function() {
    var diff = remaining - new Date() + +start;
    return diff < 0 ? false : diff;
};
var cancel = setInterval(function() {
    var diff = tick();
    if (diff === false) clearInterval(cancel);
    else console.log(diff);
}, 1000);