シンプルな JavaScript を使用して自分の国の現地時間を表示していますが、正しく表示されず、正しい順序で表示されていないようです。真夜中の 12 時を過ぎると、時計は本来午前にリセットされますが、時刻は午後に表示され続けます。
体:
<body onload="updateClock(); setInterval('updateClock()', 1000 )">
//div tags, elements etc
</body>
JS:
function updateClock (){
var currentTime = new Date();
var currentHours = currentTime.getUTCHours() + 8;
var currentMinutes = currentTime.getUTCMinutes();
var currentSeconds = currentTime.getUTCSeconds();
// var bucurestiOffset = 3*60000;
// var userOffset = currentTime.getTimezoneOffset()*60000;
currentMinutes = ( currentMinutes < 10 ? "0" : "" ) + currentMinutes;
currentSeconds = ( currentSeconds < 10 ? "0" : "" ) + currentSeconds;
var timeOfDay = ( currentHours < 12 ) ? "AM" : "PM";
currentHours = ( currentHours > 12 ) ? currentHours - 12 : currentHours;
currentHours = ( currentHours == 0 ) ? 12 : currentHours;
var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;
document.getElementById("clock").firstChild.nodeValue = currentTimeString;
}
結果は次のとおりです。1: 57 AMであるはずの 13:57 PMです。それを修正する方法がわからない。