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

纯JS(Vanilla.js)倒计时传入大秒数仅显示后两位秒数问题求解

问题原因

问题由两个代码错误共同导致:

  • 单位不匹配:new Date().getTime()返回的是毫秒级时间戳,你传入refillTimer的theTime是秒单位,直接相加相当于把输入的秒数当成毫秒数计算:37000秒输入会被当成37000毫秒(即37秒),43650秒输入会被当成43650毫秒(约43秒),这是倒计时总时长不符合预期的核心原因。
  • 格式化规则错误:当前用event.strftime('<strong>%S</strong>')仅提取了倒计时剩余时间的秒数部分,就算总时长正确,也不会展示小时、分钟部分,不符合你要的HH:MM:SS格式需求。
解决方案

只需修改refillTimer函数的两处逻辑即可:

// 修复后的倒计时函数
function refillTimer(theTime) {
  // 1. 秒转毫秒,乘以1000匹配时间戳单位
  var timer = new Date().getTime() + theTime * 1000;
  $('#refillTimer').countdown(timer).on('update.countdown', function(event) {
    $(this).show();
    var $this = $(this);
    if(event.elapsed){
      $this.html(event.strftime('0:0:0'));
    }else{
      // 2. 修改格式化字符串,输出时分秒完整格式
      $this.html(event.strftime('<strong>%H:%M:%S</strong>'));
    }
  }).on('finish.countdown', function(){
    $(this).hide();
  });
}

注:%H为24小时制补零格式、%M为分钟补零格式、%S为秒补零格式,刚好符合你需要的HH:MM:SS展示需求。

内容的提问来源于stack exchange,提问作者Relaxing Music

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:45:03