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

为什么jQuery.countdown的该用法计算出的日期差结果错误?

问题原因与修复方案

核心错误点

  • 格式化占位符使用错误:你代码中使用的%-d是公历日期「当月的第几天」(取值范围1~31),并非两个日期之间的剩余总天数。jQuery.countdown插件中用来表示倒计时剩余总天数的占位符是%-D,这是你得到的结果偏差极大的核心原因。
  • 结束日期写死固定年份:你直接写死了2021/12/25作为结束日期,如果需要动态计算到「当年圣诞节」的倒计时,建议动态生成当前年份的圣诞节日期对象,避免跨年之后代码失效。同时传Date对象比传日期字符串更稳妥,可避免不同浏览器对日期字符串的解析差异。

修复后的代码

JavaScript部分

function doCountDown(countDownContainer, endDate) {
  $(countDownContainer).countdown(endDate, function(event) {
    $(this).html(event.strftime('<ul class="list-unstyled clock">' +
      '<li class="days"><span>%-D</span><span>days</span></li> ' +
      '<li class="hrs"><span>%H</span><span>hours</span></li> ' +
      '<li class="mins"><span>%M</span><span>minutes</span></li> ' +
      '<li class="seconds"><span>%S</span><span>seconds</span></li></ul>'));
  });
}

// 动态生成当年圣诞节日期,月份参数从0开始,11对应12月
const currentYearChristmas = new Date(new Date().getFullYear(), 11, 25);
doCountDown('#count_down', currentYearChristmas);

CSS(无修改,可保持原代码)

.clock {
  display: inline-flex;
}

.clock li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin: 0 4px;
  font-weight: bold;
  color: #efefef;
  background: #343434;
  border-radius: 3px;
}

.clock li span {
  line-height: 1;
}

.clock li span:last-child {
  font-size: 10px;
  padding: 5px 0;
  text-transform: uppercase;
}

HTML(无修改,可保持原代码)

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.rawgit.com/hilios/jQuery.countdown/2.2.0/dist/jquery.countdown.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet" />

<div class="conrainer">
  <div class="text-center">
    <h1 class="h4 my-3">Party starts in...</h1>
    <div id="count_down"></div>
  </div>
</div>

内容的提问来源于stack exchange,提问作者Razvan Zamfir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:45:04