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

求助:如何实现可持久化循环的JavaScript六分钟倒计时器?

实现6分钟循环持久化倒计时器

下面是满足需求的完整实现代码,核心是利用localStorage保存剩余计时,确保页面刷新后不会重置,直到计时归零才重新开始6分钟倒计时:

HTML结构

<div id="countdown" style="font-size: 24px; font-weight: bold; margin: 20px;"></div>

JavaScript逻辑

// 定义6分钟对应的毫秒数
const CYCLE_DURATION = 6 * 60 * 1000;
const countdownEl = document.getElementById('countdown');

// 初始化剩余时间:优先从localStorage读取,没有则用初始6分钟
let remainingTime = localStorage.getItem('remainingCountdownTime');
remainingTime = remainingTime ? parseInt(remainingTime, 10) : CYCLE_DURATION;

// 更新倒计时显示的函数
function updateCountdown() {
    if (remainingTime <= 0) {
        // 计时归零,重置为6分钟
        remainingTime = CYCLE_DURATION;
        localStorage.setItem('remainingCountdownTime', remainingTime);
    }

    // 计算分、秒
    const minutes = Math.floor(remainingTime / 60000);
    const seconds = Math.floor((remainingTime % 60000) / 1000);

    // 格式化显示,确保两位数
    countdownEl.textContent = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;

    // 减少1秒(1000毫秒)
    remainingTime -= 1000;
    // 同步更新localStorage
    localStorage.setItem('remainingCountdownTime', remainingTime);
}

// 首次执行一次,避免页面加载后延迟显示
updateCountdown();
// 每秒更新一次倒计时
setInterval(updateCountdown, 1000);

关键说明

  • 持久化存储:通过localStorage保存剩余计时的毫秒数,页面刷新时会读取这个值继续计时,不会从头开始
  • 循环逻辑:当剩余时间归零时,自动重置为6分钟并更新存储,实现循环倒计时
  • 格式化显示:用padStart确保分、秒都是两位数,提升可读性

内容的提问来源于stack exchange,提问作者Juboraj Islam Mamun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:20:16