JS倒计时计时器未显示0秒问题求助
修复JS倒计时计时器的Bug
原代码的问题出在执行顺序和终止条件上:
- 先执行
second--再输出,导致初始的秒数直接被减1,跳过了1:00的显示 - 当分钟减到0时立刻清除定时器,没机会输出
0:00
修复后的代码:
let second = 0 // 初始秒设为0,对应1:00的起始状态 let minute = 1 let mytimer = setInterval(function(){ // 先输出当前的时分 console.log(`${minute}:${second.toString().padStart(2, '0')}`) // 再进行递减逻辑 if (second === 0) { second = 59 minute-- } else { second-- } // 只有当分钟和秒都为0时才停止定时器 if (minute === 0 && second === 0) { clearInterval(mytimer) // 最后输出0:00 console.log('0:00') } }, 10)
改动说明:
- 调整执行顺序:先输出当前时间,再做递减操作,确保每一个时间节点都能被打印
- 修改终止条件:只有当分钟和秒同时为0时才清除定时器,保证
0:00能被输出 - 新增
padStart(2, '0')处理秒数的格式化,让小于10的秒数显示为两位(比如0显示为00,5显示为05),更符合计时器的常规显示
内容的提问来源于stack exchange,提问作者ѕραcє αηɗ тιмє
相关产品推荐
相关产品推荐

