You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS H:m:s:ms格式秒表问题:分钟到60未重置持续递增求修复

问题解决:秒表分钟数不重置的修复

你的问题确实出在m变量的计算逻辑上,当前代码里var m = parseInt(n / 60)得到的是累计总秒数,而非当前分钟数,所以会持续递增不会重置。

修正思路

首先明确你的计数逻辑:定时器以1000/60(约16.67ms)为间隔执行,n每加1代表1/60秒。因此:

  • 总秒数 = n / 60
  • 当前分钟数 = 总秒数 ÷ 60 后对60取余(这样超过60分钟的部分会被归到小时,分钟数保持0-59)
  • 当前秒数 = 总秒数对60取余
  • 小时数 = 总秒数 ÷ 3600(3600秒=1小时)

修正后的代码

n = 3600;
td = setInterval(function () 
{
  n++;
  // 计算总秒数
  const totalSeconds = n / 60;
  // 小时数:总秒数 ÷ 3600
  let hours = Math.floor(totalSeconds / 3600);
  // 分钟数:(总秒数 ÷ 60) 对60取余,确保0-59
  var m = Math.floor(totalSeconds / 60) % 60;
  // 秒数:总秒数对60取余,确保0-59
  var s = Math.floor(totalSeconds % 60);
  // 1/60秒单位:n对60取余,0-59
  var M = n % 60;

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

关键说明

  • 用Math.floor替代parseInt更适合处理整数取整逻辑,避免隐式转换问题
  • 对分钟数计算添加% 60,确保数值超过60时自动重置为0,同时把超出的部分累计到小时数中

内容的提问来源于stack exchange,提问作者Roby Firnando Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:50:28