2017-05-12 43 views
0

進入一些代碼後,會顯示幾天,幾小時和幾分鐘,這些代碼記錄了每個星期五每天的中午,幾小時和幾分鐘的時間?JavaScript每週五重複倒計時到中午

(當中午週五達到我想櫃檯重新開始倒計時下週五午盤,所以計時器重複一遍又一遍?)

不知道如何去這樣做,因爲我相對較新的JS

任何幫助非常感謝!

+0

不把這作爲答案,但如果你被允許使用jquery,那麼有一個名爲JQuery.Countdown的插件,基本上會爲你做這個。 –

+0

關於定時器有很多很多的問題和解答,例如[* Javascript Countdown *](http://stackoverflow.com/questions/26004939/javascript-countdown)。請參閱[*我如何問一個好問題?*](http://stackoverflow.com/help/how-to-ask) – RobG

回答

0

這裏有很多關於定時器和倒計時的問題,你應該能夠從中找出一些基本的東西。一個非常簡單的倒計時中午下週五是:

function update(){ 
 

 
    // Get current date and time 
 
    var today = new Date(); 
 

 
    // Get number of days to Friday 
 
    var dayNum = today.getDay(); 
 
    var daysToFri = 5 - (dayNum < 5? dayNum : dayNum - 7); 
 
    
 
    // Get milliseconds to noon friday 
 
    var fridayNoon = new Date(+today); 
 
    fridayNoon.setDate(fridayNoon.getDate() + daysToFri); 
 
    fridayNoon.setHours(12,0,0,0); 
 
    // Round up ms remaining so seconds remaining matches clock 
 
    var ms = Math.ceil((fridayNoon - today)/1000)*1000; 
 
    var d = ms/8.64e7 | 0; 
 
    var h = (ms % 8.64e7)/3.6e6 | 0; 
 
    var m = (ms % 3.6e6)/6e4 | 0; 
 
    var s = (ms % 6e4) /1e3 | 0; 
 
    
 
    // Return remaining 
 
    return d + 'd ' + h + 'h ' + m + 'm ' + s + 's'; 
 
} 
 

 
// Run update just after next full second 
 
function runUpdate() { 
 
    var el = document.getElementById('toFriday'); 
 
    el.innerHTML = update(); 
 
    setTimeout(runUpdate, 1020 - (Date.now()%1000)); 
 
} 
 

 
runUpdate();
<div>Remaining to noon next Friday: <span id="toFriday"></span>

這是一個非常基本的實現,並當它在夏令邊界(可避免)將跳過,但應該適合簡單的倒數計時,其餘時間不重要。它只會是錯誤的時間很短:

    在觀察夏令地方
  • 在今年實行夏令變化有效果的兩天,
  • 變更是否不是在午夜
+0

謝謝,我該如何在我的頁面中使用這個腳本?我是否需要JQuery,我已經完全按照原樣複製了腳本,但是它不運行?非常感謝您的幫助,非常感謝! @RobG – fldchris

+0

你需要在頁面加載時運行'runUpdate()'。該代碼在瀏覽器中適用於IE 6。 – RobG