2014-02-13 1 views
0

누군가 내 카운트 다운 자바 스크립트를 선도 제로 추가 할 수 있습니다. 3 시간처럼 시도 지금은 미친 점점 ... 여기에 내가했던 어떤 이상한의 코딩없이 깨끗한 카운트 다운 :leadingzero 추가 내 카운트를합니까 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); 
} 

참고 그 코드를 테스트하지 않은하지만 당신은 기본적인 생각을해야한다.