Changing the 1-24 hour to 1-12 hour for the "getHours()" Method

Tony Wilkerson picture Tony Wilkerson · May 11, 2012 · Viewed 48.1k times · Source

When I use the "getHour()" method in javascript, it displays the military time format. I need it to display the hour in numbers between 1-12 instead. Can anybody tell me how to do this? Here is the code I am using:

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;
}

Answer

mcw picture mcw · Jul 17, 2014

Why not do it the brief way? Math, people! :)

// returns the hours number for a date, between 1 and 12
function hours12(date) { return (date.getHours() + 24) % 12 || 12; }