2017-04-20 85 views
0

嗨,我希望這個Javscript函數倒計時,剩下的時間有多少,直到第二天,但我似乎遇到了問題,當我想自動化它。Javascript每日倒計時不工作

如果我改變了代碼

var eventDate = new Date(); 
eventDate.setDate(now.getDate() +1); 

要將此代碼,將工作,但它不是自動

var eventDate = new Date(2017, 03, 21); 

那麼我怎樣才能使它自動?

function countDown() { 
    var now = new Date(); 
    var currentTime = now.getTime(); 
    var eventDate = new Date(); 
    eventDate.setDate(now.getDate() +1); 

    var eventTime = eventDate.getTime(); 

    var remainingTime = eventTime - currentTime; 

    var sekunder = Math.floor(remainingTime/1000); 
    var minutter = Math.floor(sekunder/60); 
    var timer = Math.floor(minutter/60); 

    sekunder %= 60; 
    minutter %= 60; 
    timer %= 24; 

    sekunder = (sekunder < 10) ? "0" + sekunder : sekunder; 
    minutter = (minutter < 10) ? "0" + minutter : minutter; 
    timer = (timer < 10) ? "0" + timer : timer; 

    var test = timer + ":" + minutter + ":" + sekunder; 
    document.getElementById("countdownTimer").textContent = test; 
    setTimeout(countDown, 1000); 
} 
countDown(); 

此外,如果有人有時間,我如何讓它倒計時到我的服務器午夜時間insted的本地計算機的時間,如JavaScript會做什麼?

+1

'now.getDate()+ 1'這是不是意味着明天這個確切的時間,而不是_untill的第二天stars_ – George

+3

類似於[確定分鐘直到午夜](http://stackoverflow.com/questions/8583694/determine-minutes-until-midnight) –

+0

似乎[工作](https://jsbin.com/suwivadava/編輯?html,js,輸出)當使用由@PatrickBarr鏈接的答案 – George

回答

0

您可以創建活動的開始日期這樣

var tomorrow = new Date(); 

tomorrow.setDate(now.getDate() +1); 

var eventDate = new Date(tomorrow.getFullYear(), tomorrow.getMonth(), tomorrow.getDate()); 

,並刪除

eventDate.setDate(now.getDate() +1); 
+0

這是如何解決OP的問題?如果打算將小時數設置爲零,那麼'tomorrow.setHours(0,0,0,0)'將會這樣做,而不會創建新的日期。 – RobG

+0

是的,目標是將小時設置爲零 – genichm