2012-05-28 95 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 ... –