jquery JS秒表计时器,H:m:s:ms格式,60分钟不清零

um6iljoc  于 2022-11-22  发布在  jQuery
关注(0)|答案(3)|浏览(124)

我做了一个JS秒表,格式为H:m:s:ms,当它达到60分钟时,它总是增加到61,62,依此类推
下面是我的代码:

n = 3600;
    td = setInterval(function () 
    {
      n++;
      let hours = parseInt(n / 3600);
      var m = parseInt(n / 60)
      var s = parseInt(n / 60 % 60);
      var M = parseInt(n % 60);

      // let hours = Math.floor(((n[ids] / 1000) / 60) / 60) % 24
      // let m = Math.floor((n[ids] / 1000) / 60) % 60
      // let s = Math.floor(n[ids] / 1000) % 60
      // let M = Math.floor(n[ids] % 1000)

      $("#display0").html(toDub(hours) + ":" + toDub(m) + ":" + toDub(s) + ":" + toDub(M))
    }, 1000 / 60);

完整源代码https://jsfiddle.net/greycat/danvL42s/2/

我确信我的m变量有问题。
有人能帮我吗?

3htmauhk

3htmauhk1#

逻辑如下:秒是其60毫秒部分的舍入值,分钟是其60秒部分的舍入值,依此类推。
您可以重构时间变量,如下所示:

var M = parseInt(n % 60); 
var s = parseInt(n / 60 % 60);
var m = parseInt(n / 60**2 % 60); 
var hours = parseInt(n / 60**3 % 60);
blpfk2vs

blpfk2vs3#

n =0;
td = setInterval(function() {
  n++;
  let hours = parseInt(n / 3600000);
  var m = parseInt(n %3600000 / 60000)
  var s = parseInt(n %3600000 %60000/ 1000);
  var M = parseInt(n %3600000 %60000% 1000);      
  $("#display0").html(toDub(hours) + ":" + toDub(m) + ":" + toDub(s) + ":" + toDub(M));
  if(m==60) {
    n=0;
  }
}, 1);

相关问题