2012-05-28 57 views
1

我想在JS中做一个倒计时器,它会每隔一分钟改变一个字段的值(开始时有20个,然后把它改为19,18,17等) ,但它不能正常工作。它不是每60秒改变一次价值,但我感觉它是随机的(有时它在15秒后第一次改变值,而另一次是53)。任何想法我做错了什么?下面是代码:JavaScript定时器倒计时退出

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); 
} 

回答

3

你不能在精确时刻的定时器功能将被称为计数。你需要你的逻辑更改为更具弹性的时间漂移​​......

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

这也是很多短...

+0

OMG,我甚至没有想到使用区间,我认为只有合理的方式来做到这一点是使用从日期模块得到的实时...呃,改变evrything ... –