如何修改JS小时倒计时代码实现每15分钟间隔倒计时功能
解决方案
原代码默认以60分钟(1小时)为周期锚定整点计算剩余时间,只需调整周期参数和分钟计算基数,即可适配每15分钟一场(每小时0/15/30/45分开场)的需求,秒数计算、定时刷新逻辑无需改动。
修改后完整代码
<script> /* 计算距离下一场15分钟间隔场次的剩余分钟、秒数 ** @returns {Object} minutes: 剩余分钟 ** seconds: 剩余秒数 */ function getTimeRemaining() { var t = Date.now(); // 定义15分钟周期对应的毫秒值 const CYCLE = 15 * 60 * 1000; // 秒数计算逻辑保持不变,按分钟周期循环 var seconds = (60 - Math.floor(t % 60000 / 1000)) % 60; // 替换原1小时周期为15分钟周期,调整剩余分钟计算基数 var minutes = 15 - Math.ceil(t % CYCLE / 60000) + (seconds ? 0 : 1); return { 'minutes': ('0' + minutes).slice(-2), 'seconds': ('0' + seconds).slice(-2) }; } // 渲染倒计时到页面 function showRemaining() { var res = getTimeRemaining(); document.getElementById('clock').textContent = res.minutes + ':' + res.seconds; // 对齐整秒刷新,逻辑不变 setTimeout(showRemaining, 1020 - (Date.now() % 1000)); } showRemaining(); </script>
关键修改点说明
- 将原代码中代表1小时周期的毫秒值
3.6e6(即60601000)替换为15分钟对应的毫秒值900000(15601000) - 剩余分钟计算的基数从原逻辑的
60(每小时总分钟数)改为15(单个15分钟周期的总分钟数) - 保留原有的边界处理逻辑:当剩余秒数为0时给分钟数补1,避免整分节点出现数值为负的异常
- 秒数计算、页面刷新定时逻辑完全复用原代码,这两部分逻辑和长周期无关,可直接适配
内容的提问来源于stack exchange,提问作者simonv4549
相关产品推荐
相关产品推荐

