23

javascript で "getHour()" メソッドを使用すると、軍用時間形式が表示されます。代わりに、1 から 12 までの数字で時間を表示する必要があります。誰でもこれを行う方法を教えてもらえますか? 私が使用しているコードは次のとおりです。

function updateclock()
{

    var time = new Date();
    var todisplay = '';

    if (time.getHours() < 10) todisplay += time.getHours();
    else todisplay += time.getHours();

    if (time.getMinutes() < 10) todisplay += ':0' + time.getMinutes();
    else todisplay += ':' + time.getMinutes();

    document.getElementById("clock").innerHTML = todisplay;
}
4

10 に答える 10

46

簡単な方法でやってみませんか?数学、人々!:)

// returns the hours number for a date, between 1 and 12
function hours12(date) { return (date.getHours() + 24) % 12 || 12; }
于 2014-07-17T13:42:19.077 に答える
33

これにより、13 ~ 24 が 1 ~ 12 の範囲に修正され、0 が 12 に修正されます。

var hours = time.getHours();
if (hours > 12) {
    hours -= 12;
} else if (hours === 0) {
   hours = 12;
}

また、コード内で自分自身を繰り返すのをやめる必要があります。呼び出しtime.getHours()て値をそれぞれ1 回time.getMinutes()だけ保存してから、先頭にゼロを追加することに注意してください。次に例を示します

function updateclock() {

    function pad(n) {
         return (n < 10) ? '0' + n : n;
    }

    var time = new Date();
    var hours = time.getHours();
    var minutes = time.getMinutes();

    if (hours > 12) {
        hours -= 12;
    } else if (hours === 0) {
        hours = 12;
    }

    var todisplay = pad(hours) + ':' + pad(minutes);
    document.getElementById("clock").innerHTML = todisplay;
}
于 2012-05-11T18:42:57.970 に答える
0
getDateTime = () => {
    const today = new Date();
    const day = today.toLocaleDateString('en-us', { weekday: 'short' });
    const month = today.toLocaleString('en-us', { month: 'short' });
    const date = today.getDate()
    const year = today.getFullYear()
    const hours = today.getHours()
    const minutes = today.getMinutes().toString()
    var dayORnight = "AM";
    if (hours > 11) { dayORnight = "PM"; }
    if (hours > 12) { hours = hours - 12; }
    if (hours == 0) { hours = 12; }
    if (hours < 10) { hours = "0" + hours; }
    if (minutes < 10) { minutes = "0" + minutes; }

    const datetime = `${day}, ${month} ${date}, ${year} at ${hours}:${minutes} ${dayORnight}`;
    console.log(datetime)
}
于 2019-01-14T05:58:06.557 に答える