简体   繁体   English

将时间格式化为字符串

[英]Formatting a time as string

I wrote this easy JS timer and i have problem with if for minutes, it still writing in first sec 00:01, second sec 000:02...... If you understand me. 我写了这个简单的JS计时器, if几分钟,我仍然有问题,它仍然在第一秒00:01,第二秒000:02中写……如果您理解我的话。 Please can you help me? 请你能帮我吗? Thank you 谢谢

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);
}

Each time your function runs, it adds a zero to the beginning of min , which is a global variable. 每次函数运行时,它都会在min的开头添加一个零,这是一个全局变量。 That's why it works the way it does. 这就是它按其方式工作的原因。

You could use a temporary variable for holding the time as string. 您可以使用一个临时变量将时间保存为字符串。

 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> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM