0

24 時間形式と 12 時間形式の 2 つの時計を用意するつもりでしたが、

function updateClock() {
    var currentTime = new Date();
    var currentHoursAP = currentTime.getHours();
    var currentHours = currentTime.getHours();
    var currentMinutes = currentTime.getMinutes();
    var currentSeconds = currentTime.getSeconds();

    // Pad the minutes and seconds with leading zeros, if required
    currentMinutes = (currentMinutes < 10 ? "0" : "") + currentMinutes;
    currentSeconds = (currentSeconds < 10 ? "0" : "") + currentSeconds;

    // Choose either "AM" or "PM" as appropriate
    var timeOfDay = (currentHours < 12) ? "AM" : "PM";

    // Convert the hours component to 12-hour format if needed
    currentHoursAP = (currentHours > 12) ? currentHours - 12 : currentHours;

    // Convert an hours component of "0" to "12"
    currentHoursAP = (currentHours == 0) ? 12 : currentHours;

    // Compose the string for display
    var currentTimeString = currentHours + ":" + currentMinutes + ":" + currentSeconds + " " + " / " + currentHoursAP + ":" + currentMinutes + ":" + currentSeconds + " " + timeOfDay;

    $("#clock").html(currentTimeString);
}

$(document).ready(function () {
    setInterval(updateClock, 1000);
});

しかし、最終的にはまったく同じ値currentHoursになります。 私は何を逃したのですか?currentHoursAP

4

2 に答える 2

2

問題は

// Convert an hours component of "0" to "12"
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP;

の値をcurrentHoursAP != 0 元に戻す代わりに、currentHoursAPcurrentHours

デモ:フィドル

于 2013-08-06T03:15:19.830 に答える
1

getHoursはゼロベース ( 0 = 12 AM, 23 = 11 PM) であるため、チェックを調整する必要があります。

currentHoursAP = (currentHours >= 12) ? currentHours - 12 : currentHours;
currentHoursAP = (currentHoursAP == 0) ? 12 : currentHoursAP;
于 2013-08-06T03:16:31.697 に答える