いくつかの都市の現在時刻を 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 でこれについて少し助けを得たことがあります。そのため、原因はおそらく私が自分で書いたものではない (したがって、理解できない) ものです。なぜそれが機能しないのかについての説明をいただければ幸いです。