2015-05-17 45 views
0
var now = new Date().getTime(); 
var remainingSeconds = (new Date(new Date(new Date(now + 3600000).setMinutes(1)).setSeconds(0)) - now)/1000; 
console.log(remainingSeconds); 
if (remainingSeconds>=120) { 
    $('#countdown').text('120'); 
}else{ 
    $('#countdown').text(remainingSeconds); 
} 

我使用此代碼計算現在和下一小時的第一分鐘之間有多少秒鐘。 問題是,如果remainingSeconds小於120秒,div文本不會改變。該腳本已準備就緒,因爲我只在頁面加載時檢查它。 我爲此創建了一個fiddlediv文本未在javascript代碼上更新

+0

該代碼在我的瀏覽器上可以正常工作。你錯過了別的嗎? –

回答

2

問題是,在您的代碼中,remainingSeconds永遠不會低於60。這是包含解決方法/解決方案的更新版本。

$(document).ready(function(){ 
    var now = new Date().getTime(); 
    var remainingSeconds = (new Date(new Date(new Date(now + 3600000).setMinutes(1)).setSeconds(0)) - now)/1000; 
    // --- Workaround-Begin --- 
    if (remainingSeconds >= 3600) { 
     remainingSeconds -= 3600; 
    } 
    // --- Workaround-End --- 
    console.log(remainingSeconds); 
    if (remainingSeconds>=120) { 
     $('#countdown').text('120'); 
    }else{ 
     $('#countdown').text(remainingSeconds); 
    } 
}); 
+0

爲什麼你檢查它是否> = 3600?這是在幾秒鐘內。或者我想念什麼? –

+2

,因爲你嘗試估計剩餘秒,直到下一個小時的第一分鐘(例如:_08:01:00_,格式:'HH:MM:ss')。如果當前時間是_08:00:20_,我們會將剩下的秒數發送到下一個小時(_09:01:00_)。所以如果它大於一個小時,我們會在小時內減去結果。 – Jan

+0

我明白了!謝謝,沒有注意到這個錯誤!感謝您指出! –