2017-01-31 5 views
0

Я написал этот простой таймер JS, и у меня проблема с if в течение нескольких минут, он все еще записывается в первый раз 00:01, второй сек 000: 02 ...... Если вы меня понимаете. Не могли ли вы помочь мне, пожалуйста? СпасибоФорматирование времени как строки

var sec = 0; 
var min = 0; 
var time; 
function timer() { 
    sec++; 
    if (sec < 10) { 
     sec = "0" + sec; 
    } 
    if (min < 10) { //here is problem I think 
     min = "0" + min; 
    } 

    if (sec == 60) { 
     sec = 0; 
     min++; 
    } 

    if (sec == 5) { //this is just a function test 
     document.getElementById("myForm").submit(); 
    } 
    document.getElementById("myTimer").innerHTML = min + ":" + sec; 
} 
function start() { 
    time = setInterval("timer()", 1000); 
} 
+0

Обратите внимание, что является предпочтительным, чтобы передать ссылку на функцию, а не строкой в ​​качестве первого параметра * * setInterval, так что 'setInterval (таймер, 1000)'. ;-) – RobG

ответ

2

Каждый раз, когда выполняется ваша функция, это добавляет ноль к началу min, который является глобальной переменной. Вот почему он работает так, как он.

Вы можете использовать временную переменную для хранения времени в виде строки.

var sec = 0; 
 
var min = 0; 
 
var time; 
 
function timer() { 
 
    sec++; 
 
    
 
    var minStr = (min < 10) ? '0' + min : '' + min; 
 
    var secStr = (sec < 10) ? '0' + sec : '' + sec; 
 
    
 
    document.getElementById("myTimer").innerHTML = minStr + ":" + secStr; 
 
} 
 
function start() { 
 
    time = setInterval("timer()", 1000); 
 
} 
 
start();
<div id="myTimer"></div>

+0

Большое вам спасибо :) – Dolis