javascript - 让时间回到 12 而不是 0

标签 javascript time

我有一个 if 语句,用于在 11:45 后将时间更改回 12:

        i = (i >= 192) ? i - 192 : ( i >= 96) ? i - 96 : i
        var mins = (i * 15 % 60)
        var hours = Math.floor(i * 15 / 60)
        var ampm = (hours >= 12) ? "PM" : "AM"


        hours = (hours == 0) ? 12 : (hours >= 12) ? hours - 12 : hours;


        var nextMins, nextHours = hours;
        switch (mins) {
            case 0:
                mins = "";
                nextMins = 15;
                break;
            case 45:
                nextMins = "";
                nextHours = hours+1;
                break;
            default:
                nextMins = mins + 15;
                break;

        }

        var time = hours + (mins == "" ? "" : ":" + mins) + " - " + nextHours + (nextMins == "" ? "" : ":" + nextMins) + ampm

它以 15 分钟为间隔更改,问题是它会在 12 点开始,但在再次到达 12:00 后,它将显示为 0:15、0:30、0:45。而不是 12:15、12:30、12:45

我认为 if 语句的这一部分可以做到这一点:

hours = (hours == 0) ? 12

但不起作用?

最佳答案

最简单的方法可能是

hours = (hours % 12) || 12;

这种方式可以处理任何正整数几个小时(例如 36 仍然会返回 12)。

关于javascript - 让时间回到 12 而不是 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9457723/

相关文章:

javascript - 在新行 AJAX 中显示 JSON 结果

ios - 如何获取 NSDate 消息中显示的时间间隔,例如 2m,3h,星期二,2014-06-01

perl - 如何在 Perl 中以纳秒为单位获取系统时间?

time - 可接受的页面加载时间

php - 显示特定时间范围内的数据库实体

javascript - Axios 中的回调函数返回错误(使用 Vue,没有 jQuery)

javascript - 导航栏文本的选择器

javascript - 将字符串分割为点后保留 2 位小数

javascript - 检查里面是否有标签

Python按增量修改csv列