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

JavaScript时钟分钟与秒数超60未归零问题求助

修复JavaScript时钟的时分秒重置问题

我来帮你搞定这个计时问题!你的代码里计算分钟和秒数时没做取余处理,导致它们会一直累加而不重置到0。咱们直接修改代码,同时也把小时的24小时重置逻辑加上:

修改后的完整代码

JavaScript部分

function increment(){ 
    if(running == 1){ 
        setTimeout(function(){ 
            Dtime++; 
            // 计算从开始到现在的总秒数(Dtime每100ms加1,除以10转成秒单位)
            const totalSeconds = Math.floor(Dtime / 10);
            
            // 秒数:总秒数对60取余,得到0-59的循环数值
            var secs = totalSeconds % 60;
            // 分钟数:总秒数转成总分钟后对60取余,实现0-59循环
            var mins = Math.floor(totalSeconds / 60) % 60;
            // 小时数:总秒数转成小时,若需要24小时制则加%24
            var hours = Math.floor(totalSeconds / 3600);
            // 👇 如果要实现24小时自动重置,替换成下面这行
            // var hours = Math.floor(totalSeconds / 3600) % 24;

            // 补零逻辑保持不变,确保单数字时显示两位
            if(hours <= 9){ hours = "0" + hours; } 
            if(mins <= 9){ mins = "0" + mins; } 
            if(secs <= 9){ secs = "0" + secs; } 

            document.getElementById("outputt").innerHTML = `${hours}:${mins}:${secs}`; 
            increment(); 
        }, 100); 
    } 
} 
var Dtime=0; 
var running = 1; 
increment(); 

HTML部分(无需修改)

<div id="outputt" class="timerClock" value="00:00:00">00:00:00</div>

关键修改说明

  • 秒数计算:用totalSeconds % 60,取余操作会让数值在0-59循环,到60自动变回0,同时进位给分钟。
  • 分钟数计算:先把总秒数转成总分钟(Math.floor(totalSeconds / 60)),再对60取余,这样分钟数也会在0-59循环,到60时重置为0并进位给小时。
  • 小时数处理:如果需要24小时制,就给小时数加%24,这样到24点时会自动重置为0;如果是累计计时(比如统计总时长),就保留原来的计算方式即可。

这样修改后,你的时钟就会完全按照时分秒的进制规则正常计数啦!

内容的提问来源于stack exchange,提问作者srcomptn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:22:48