1

我正在尝试在 JS 中创建一个倒数计时器,它将每分钟更改一次字段的值(一开始是 20,然后将其更改为 19、18、17 等),但它无法正常工作。它不是每 60 秒改变一次值,但我觉得它是随机的(有时它在 15 秒后第一次改变值,另一次是 53)。知道我做错了什么吗?这是代码:

function getTimeNow(){
    var Time = new Date;
    return Time.getHours()*60*60+Time.getMinutes()*60 + Time.getSeconds();
}

    var start = getTimeNow();
    var start_point = start%60;
    var target = start+60*20;


function TimeOut(){
    if((getTimeNow()-start)%60 == start_point && target>getTimeNow()){
       var temp = jQuery('.Timer').html();
       temp-=1;
       jQuery('.Timer').html(temp);
    }
    setTimeout(TimeOut,1000);
}
4

1 回答 1

3

您不能指望调用计时器函数的确切时间。您需要将逻辑更改为对时间变化更具弹性的东西...

setInterval(function(){count.innerText = count.innerText - 1;},
            60*1000);

这也短了很多...

于 2012-05-28T06:40:38.620 回答