我有一个自定义脚本,以 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 上得到了一些帮助,所以不管是什么原因导致它可能是我自己没有写的(因此不明白)。关于它为什么不起作用的解释将不胜感激。