2015-10-05 3 views
-3
var m=0; 
var s=0; 
var h=0; 
var t; 

function start(){ 
    document.getElementById('ms').innerHTML=m; 
    document.getElementById('mm').innerHTML=s; 
    document.getElementById('mh').innerHTML=h; 
    s++; 

    if(s==60){ 
     s=0; 
     m++; 
    } 
    if(m==60){ 
     m=0; 
     h++; 
    } 
    t= setTimeout("start()",20); 
} 

function stop(){ 
    clearTimeout(t); 
} 

Когда счетчик продолжает увеличиваться, он отображает одну цифру. Не уверен, как я могу отформатировать часы, чтобы они напоминали цифровые часы, а 00:00:00. БлагодаряСделать Javascript таймер отображать 00 placeholder

+5

Добавить строку ' "0"', когда значение меньше 10. – Pointy

+0

Кроме того, 1) не передать строку setTimeout, но ссылка на функцию 'start' 2) использует set Interval 3) использовать 1000 мс в качестве интервала, если вы хотите обновить его в секунду. – Christoph

ответ

1

Вот пример:

var m = 0; 
 
var s = 0; 
 
var h = 0; 
 
var t; 
 

 
function start() { 
 
    var z = ''; 
 
    z = (s < 10) ? '0' : ''; 
 
    document.getElementById('ms').innerHTML = z + s; 
 
    s++; 
 

 
    if (s == 60) { 
 
    s = 0; 
 
    z = (m < 10) ? '0' : ''; 
 
    document.getElementById('mm').innerHTML = z + m; 
 
    m++; 
 

 
    if (m == 60) { 
 
     m = 0; 
 
     z = (h < 10) ? '0' : ''; 
 
     document.getElementById('mh').innerHTML = z + h; 
 
     h++; 
 
    } 
 
    } 
 
    t = setTimeout(start, 1000); 
 
} 
 

 
function stop() { 
 
    clearTimeout(t); 
 
}
<span id="mh">00</span> : <span id="mm">00</span> : <span id="ms">00</span> 
 
<br> 
 
<br> 
 
<button type="button" onclick="start()">Start</button> 
 
<button type="button" onclick="stop()">Stop</button>

+0

Измените 'setTimeout (" start() ", 20)', на 'setTimeout (start, 20)'. Не преподавайте eval-версию 'setTimeout', это ужасная практика. – Oka

+0

@Oka Спасибо, что поймали это. Я просто скопировал код искателя. – Joseph

Смежные вопросы