2017-04-09 116 views
2

我想建立一個時間倒計時,我發送時間戳以毫秒爲單位,每秒我將這個值減去當前時間來倒計時。建設時間倒計時

我使用這個網站產生的時間戳

https://www.epochconverter.com/ 

但是,當我選擇時間戳一天要在三天例如,我的腳本只檢查小時,分鐘和秒,忘掉日,月或年。

例子:當我選擇這個日子 - 2017年11月4日20:00:00

我的腳本不顯示我exacly多少個小時沒有考慮到的時間戳,它表明,3個小時,這是不正確

我的代碼:

var updateTime = setInterval(function() { 
    var getEpochEnding = new Date(1492111767000); 
    var getTimeNow = new Date(); 
    var timeZone = getTimeNow.getTimezoneOffset(); 
    var ctdMillis = new Date(Math.abs(getEpochEnding - (getTimeNow - (timeZone * 60000)))); 

    var ctdSeconds = parseInt((ctdMillis/1000) % 60); 
    var ctdMinutes = parseInt((ctdMillis/(1000 * 60)) % 60); 
    var ctdHours = parseInt((ctdMillis/(1000 * 60 * 60)) % 24); 

    if ((getTimeNow - (timeZone * 60000)) > getEpochEnding) { 

     ctdSeconds = 0; 
     ctdMinutes = 0; 
     ctdHours = 0; 
     clearInterval(updateTime); 
    } 

    document.getElementById('countdown').innerHTML = ("0" + ctdHours).substr(-2) + ":" + ("0" + ctdMinutes).substr(-2) + ":" + ("0" + ctdSeconds).substr(-2); 

}, 1000); 

的jsfiddle:

https://jsfiddle.net/udec8074/1/

+0

您可以考慮使用momentjs(http://momentjs.com/docs/#/displaying/fromnow/) –

+0

var ctdHours = parseInt((ctdMillis /(1000 * 60 * 60))%24)'%24'表示分割後的[餘數](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Remainder_())所以,例如,75將改爲3。 –

回答

-1

ctdHours表達刪除% 24innerHTML表達改變ctdHours

var updateTime = setInterval(function() { 
    var getEpochEnding = new Date(1492111767000); 
    var getTimeNow = new Date(); 
    var timeZone = getTimeNow.getTimezoneOffset(); 
    var ctdMillis = new Date(Math.abs(getEpochEnding - (getTimeNow - (timeZone * 60000)))); 

    var ctdSeconds = parseInt((ctdMillis/1000) % 60); 
    var ctdMinutes = parseInt((ctdMillis/(1000 * 60)) % 60); 
    var ctdHours = parseInt(ctdMillis/(1000 * 60 * 60)); 

    if ((getTimeNow - (timeZone * 60000)) > getEpochEnding) { 

     ctdSeconds = 0; 
     ctdMinutes = 0; 
     ctdHours = 0; 
     clearInterval(updateTime); 
    } 

    document.getElementById('countdown').innerHTML = ctdHours + ":" + ("0" + ctdMinutes).substr(-2) + ":" + ("0" + ctdSeconds).substr(-2); 

}, 1000); 

雖然這種解決方案將不顯示前導零的時間:「1點23分45秒」,而不是原來的「1點23分45秒」 。