2012-10-04 4 views
3

내가이 자바 스크립트 코드자바 스크립트 카운트 다운

function updateClock() { 
     time = time + 1; 
     var mins = 1; 
     var secs = 50 
     var mins = parseInt(mins/ 60); 
     var secs = time - mins * 60; 

     mins = mins.toString(); 
     secs = secs.toString(); 

     if (mins.length < 2) 
      mins = "0" + mins; 
     if (secs.length < 2) 
      secs = "0" + secs; 


     var timeDisp = document.getElementById("timerDisp"); 
     timeDisp.innerText = mins + ":" + secs; 
    } 

경과 된 시간을 계산되어이 작업,하지만 난 카운트 다운을하고 싶은 경우 어떻게하지? (또는 그 반대로) 시간을 추적하는 대신 시간을 줄이면 시간이 줄어들고, 1 분 15 초를 말하자면 주어진 코드에서 어떻게 실행할까요?

+2

타이머가 아닌 초시계이기 때문에 작동하지 않습니다. 코드를 수정하려고 시도 했습니까? – Blender

+0

나는 그랬지만, 여전히 똑같은 일을하고있다. 나는 확실한 시간을 세우려고했으나 같은 결과로 끝나게된다. – KyelJmD

+1

현재 코드를 게시하십시오. 그렇게하면 더 쉽게 작업 할 수 있습니다. – Blender

답변

5

updateClock()을 1 초마다 setTimeout()으로 실행하여 카운트 다운을 생성 할 수 있습니다.

var time; 
function UpdateClock() { 
    time = time - 1; 

    if (time > 0) { 
     setTimeout(UpdateClock, 1000); // 1000 miliseconds 
    } 

    var mins = parseInt(time/60, 10); 
    var secs = time - mins * 60; 

    mins = mins.toString(); 
    secs = secs.toString(); 

    if (mins.length < 2) 
     mins = "0" + mins; 
    if (secs.length < 2) 
     secs = "0" + secs; 

    timeDisp.innerText = mins + ":" + secs + " left"; 
} 

function StartCountdown(countdowntime) { 
    time = countdowntime; 
    updateClock(); 
} 
+0

가능한 한 빨리'UpdateClock'에서'setTimeout' 호출을 옮길 수 있습니다. 그렇지 않으면 다른 라인에 대한 추가 처리는 '틱'사이의 전체 시간이 실제로는 1000ms보다 약간 긴 것을 의미 할 수 있습니다. 이 예제에서 그런 문제는 아니지만 조심하지 않으면 '진짜'시간에서 벗어나는 타이머로 끝날 수 있습니다. –

+0

초는 어떻습니까? 어떻게 표시합니까? 나는 초와 분을 구분한다. – KyelJmD

+0

@KyelJmD 구현에서와 같은 방식으로. –

관련 문제