将时间格式化为字符串

时间:2017-01-31 20:11:16

标签: javascript timer setinterval

我写了这个简单的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);
}

1 个答案:

答案 0 :(得分: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>