jQuery时间错误,12:00显示为12

时间:2013-03-21 15:27:19

标签: javascript jquery

我有一个自定义脚本,以HH:MM AM / PM格式显示多个城市的当前时间。出于某种原因,如果时间是12:00-12:59 AM / PM,它只显示为12.我没有看到它有什么问题,有人可以解决它吗?

$(document).ready(function() {
    function calculateTime(offset) {
        var currentDate = new Date()
        utc = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000);
        newDate = new Date(utc + (3600000*offset));
        var minutes = newDate.getMinutes();
        if(minutes < 10) {
            minutes = "0" + minutes;
        }
        return (newDate.getHours() === 0) ? 12 : ((newDate.getHours() > 12) ? newDate.getHours() - 12 : newDate.getHours()) + ' : ' + minutes + ' ' + ((newDate.getHours() >  11) ? 'PM' : 'AM');
    }
    function displayTimes() {
        $(".chicago").html(calculateTime("-6"));
        $(".london").html(calculateTime("+0"));`
        $(".shanghai").html(calculateTime("+8"));
        $(".sydney").html(calculateTime("+9"));
    };
    displayTimes();
    window.setInterval(displayTimes, 5000);
});

我也在考虑调整夏令时,但我想我应该能够自己解决这个问题(但如果有人知道怎么做,请告诉我!)。

之前我已经在Stack Overflow上得到了一些帮助,所以无论是什么导致它可能是我自己没有写的东西(因此不明白)。关于它为什么不起作用的探索将不胜感激。

1 个答案:

答案 0 :(得分:2)

你错过了一些支架,试试这个:

return ((newDate.getHours() === 0) ? 12 : ((newDate.getHours() > 12) ? newDate.getHours() - 12 : newDate.getHours())) + ' : ' + minutes + ' ' + ((newDate.getHours() >  11) ? 'PM' : 'AM');