我有一个自定义脚本,以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上得到了一些帮助,所以无论是什么导致它可能是我自己没有写的东西(因此不明白)。关于它为什么不起作用的探索将不胜感激。
答案 0 :(得分:2)
你错过了一些支架,试试这个:
return ((newDate.getHours() === 0) ? 12 : ((newDate.getHours() > 12) ? newDate.getHours() - 12 : newDate.getHours())) + ' : ' + minutes + ' ' + ((newDate.getHours() > 11) ? 'PM' : 'AM');