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

如何用JavaScript将倒计时的24小时制转为带AM/PM的12小时制

实现带AM/PM的12小时制倒计时

没问题,我来帮你修改代码实现12小时制带AM/PM标识的格式。核心是把计算出来的24小时制小时数转换为12小时制,并添加时段标识,下面是修改后的完整代码:

<p id="check_time"></p>
<p id="check_hours"></p>
<script>
var countDownDate = new Date("may 17, 2018 01:37:25").getTime();
var x = setInterval(function() {
    var now = new Date().getTime();
    var distance = countDownDate - now;

    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    // 转换为12小时制并添加AM/PM标识
    var period = hours >= 12 ? "PM" : "AM";
    var twelveHour = hours % 12;
    twelveHour = twelveHour === 0 ? 12 : twelveHour; // 把0点转换为12点

    // 更新显示内容
    document.getElementById("check_hours").innerHTML = twelveHour + " " + period;
    document.getElementById("check_time").innerHTML = days + "d " + twelveHour + "h " + period + " " + minutes + "m " + seconds + "s ";

    if (distance < 0) {
        clearInterval(x);
        // 原代码里的"demo"元素不存在,这里改成check_time更合理
        document.getElementById("check_time").innerHTML = "EXPIRED";
    }
}, 1000);
</script>

关键修改点说明:

  • 时段判断:用hours >= 12来区分PM和AM,大于等于12就是PM,否则是AM。
  • 12小时制转换:用hours % 12得到12小时制的小时数,这里要注意0点(24小时制的0或12)需要转换为12,所以加了判断twelveHour === 0 ? 12 : twelveHour。
  • 显示更新:把原来的hours替换成转换后的twelveHour,并加上period(AM/PM)标识,同时更新了check_hours和check_time的显示内容。
  • 修复小问题:原代码里倒计时结束时要修改的demo元素不存在,我改成了check_time,你可以根据自己的需求调整。

这样修改后,倒计时里的小时数就会以1:00 PM、2:00 PM这类格式显示啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:54:25