2014-02-13 30 views
0

有人可以幫我添加一個領先的零做倒計時JavaScript。 試圖像3小時,現在我越來越瘋狂......這裏是乾淨的倒計時,沒有任何奇怪的值編碼我所做的:添加leadzero做我的倒計時JavaScript

<script type="text/javascript"> 

var strTargetDate = "05/16/2014 12:00 AM"; 
var strFormat = "$DAYS$ $HOURS$ $MINUTES$ $SECONDS$"; 
var strExpired = "DONE"; 

function doCountDown(seconds) 
{ 
    if (seconds < 0) 
    { 
     document.getElementById("countdown").innerHTML = strExpired; 
     return; 
    } 
    var strMsg = strFormat; 
    strMsg = strMsg.replace("$DAYS$", ((Math.floor(seconds/86400))%100000).toString()); 
    strMsg = strMsg.replace("$HOURS$", ((Math.floor(seconds/3600))%24).toString()); 
    strMsg = strMsg.replace("$MINUTES$", ((Math.floor(seconds/60))%60).toString()); 
    strMsg = strMsg.replace("$SECONDS$", ((Math.floor(seconds))%60).toString()); 

    document.getElementById("countdown").innerHTML = strMsg; 

    setTimeout("doCountDown(" + (seconds-1).toString() + ")", 1000); 
} 

function initCountDown() 
{ 
    var dtTarget = new Date(strTargetDate); 
    var dtNow = new Date(); 
    var dtDiff = new Date(dtTarget-dtNow); 
    var totalSeconds = Math.floor(dtDiff.valueOf()/1000); 

    doCountDown(totalSeconds); 
} 

initCountDown(); 

</script> 
+0

如果每個數字大於9,則必須檢查每個數字。如果不是,則預置一個「0」並顯示數字。 – linkyndy

回答

0

它的檢測值是否太小一件簡單的事情,如果是,自己加上前綴。

喜歡的東西取代:

strMsg = strMsg.replace("$SECONDS$", ((Math.floor(seconds))%60).toString()); 

有:

var secs_str = ((Math.floor(seconds)) % 60).toString(); 
if (secs_str.length < 2) { 
    strMsg = strMsg.replace("$SECONDS$", "0" + secs_str); 
} else { 
    strMsg = strMsg.replace("$SECONDS$", secs_str); 
} 

注意我沒有測試代碼,但你應該得到的基本思路。