2017-01-31 7 views
0

私はこの簡単なJSタイマーを書いて、私はifに数分問題があります。それはまだ最初の秒00:01、2番目の秒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

関連する問題