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

如何在新用户访问页面时重置倒计时器至120秒?

解决新用户访问时120秒倒计时的问题

针对你提出的两个问题,下面是修改后的完整代码,直接实现新用户访问页面时倒计时从120秒开始的需求:

<style>
    #countdown {
        font-size: 36px;
        font-weight: bold;
        color: white;
        text-align: center;
        margin: 20px 0;
    }
</style>

<p id="countdown"></p>

<script>
    // 初始化倒计时结束时间:首次访问时设置为当前时间+120秒,否则读取本地存储的时间
    let endTime = localStorage.getItem('countdownEndTime');
    if (!endTime) {
        endTime = new Date().getTime() + 120 * 1000;
        localStorage.setItem('countdownEndTime', endTime);
    } else {
        endTime = parseInt(endTime);
    }

    function updateCountdown() {
        const currentTime = new Date().getTime();
        let remainingSeconds = Math.floor((endTime - currentTime) / 1000);

        // 处理倒计时结束的情况
        if (remainingSeconds <= 0) {
            document.getElementById("countdown").innerHTML = "倒计时结束";
            return;
        }

        // 计算分钟和秒数(120秒最多2分钟,无需显示天/小时)
        const minutes = Math.floor(remainingSeconds / 60);
        const seconds = remainingSeconds % 60;

        // 格式化显示,确保秒数是两位数
        document.getElementById("countdown").innerHTML = `${minutes}m ${seconds.toString().padStart(2, '0')}s`;
    }

    // 初始化执行一次,避免延迟显示
    updateCountdown();
    setInterval(updateCountdown, 1000);
</script>

关键修改说明

  • 设置开始时间为当前时间:通过new Date().getTime()获取当前时间的时间戳,加上120秒对应的毫秒数(120*1000)得到倒计时结束时间,首次访问时将该时间存入localStorage,避免页面刷新后重新初始化倒计时。
  • 从120秒开始倒计时:直接计算结束时间与当前时间的差值,转换为剩余秒数,仅保留分钟和秒数的显示(120秒最多2分钟,天/小时显示无意义),用padStart(2, '0')确保秒数始终以两位数呈现。
  • 处理倒计时结束:当剩余秒数≤0时,显示"倒计时结束"并停止更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:44:54