活动页的倒计时每次刷新都回到二十三小时五十九分,用户截了两次图对比,发现时间根本没往前走。活动开始才两天。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,倒计时终点被写成页面里的固定字符串,脚本每次加载都用当前时间重新加二十四小时,刷新等于重置。时间基准放在客户端,改系统时间也能骗过它。
「落地页倒计时重置」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。改完顺手把文档补一句,省得下次自己重新推一遍。
const end = new Date('2026-11-30T23:59:59+08:00');
const left = Math.max(0, end - Date.now());
if (left === 0) document.querySelector('.cta').disabled = true;
具体做法是,把活动结束时间由服务端输出到页面,用带时区的 ISO 8601 格式,别在脚本里算相对时长;前端只做终点减当前时间的展示,差值小于零就显示已结束并禁用按钮;所有模板读同一份配置,别让每个落地页各写一个终点。
最后用这个标准收尾,连续刷新三次,倒计时从同一个剩余时间继续往下走,不会跳回起点。
