web-dev-qa-db-fra.com

Modification de 1-24 heure à 1-12 heure pour la méthode "getHours ()"

Lorsque j'utilise la méthode "getHour ()" en javascript, le format de l'heure militaire est affiché. J'en ai besoin pour afficher l'heure en chiffres entre 1 et 12 à la place. Quelqu'un peut-il me dire comment faire cela? Voici le code que j'utilise:

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;
}
17
Tony Wilkerson

Cela corrigera les valeurs 13 - 24 dans la plage 1 - 12 et 0 dans la plage 12:

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

En outre, vous devez cesser de vous répéter dans votre code. Appelez time.getHours() et time.getMinutes() et enregistrez leurs valeurs juste une fois chaque, et ensuite inquiétez-vous de l'ajout des zéros non significatifs, par exemple:

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

Pourquoi ne pas le faire de manière brève? Math, les gens! :)

// returns the hours number for a date, between 1 and 12
function hours12(date) { return (date.getHours() + 24) % 12 || 12; }
30
mcw0933
function getClockTime(){
   var now    = new Date();
   var hour   = now.getHours();
   var minute = now.getMinutes();
   var second = now.getSeconds();
   var ap = "AM";
   if (hour   > 11) { ap = "PM";             }
   if (hour   > 12) { hour = hour - 12;      }
   if (hour   == 0) { hour = 12;             }
   if (hour   < 10) { hour   = "0" + hour;   }
   if (minute < 10) { minute = "0" + minute; }
   if (second < 10) { second = "0" + second; }
   var timeString = hour + ':' + minute + ':' + second + " " + ap;
   return timeString;
}

Cette fonction donnera le format de temps parfait en 1 à 12 heures.

8
Baraskar Sandeep

Les autres réponses sont effectivement très bonnes. Mais je pense que la suite peut aussi être incluse.

var d = new Date();
var hour = d.getHours(); 
var minute = d.getMinutes();
var fulltime = "";

// create a 24 elements(0-23) array containing following values
const arrayHrs = [12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11];

    // since getMinutes() returns 0 to 9 for upto 9 minutes, not 00 to 09, we can do this
    if(minute < 10) {
        minute = "0" + minute;
    }

    if( hour < 12) {
        // Just for an example, if hour = 11 and minute = 29
        fulltime = arrayHrs[hour] + ":" + minute + " AM"; // fulltime = 11:29 AM
    }
    else {
        // similarly, if hour = 22 and minute = 8
        fulltime = arrayHrs[hour] + ":" + minute + " PM"; // fulltime = 10:08 PM
    }

Voyez ce que j'ai fait là dans arrayHrs;)

3
falero80s

le moyen facile de l'utiliser.

setInterval(function() {

var d = new Date();

document.getElementById("demo").innerHTML = 
d.getHours() % 12+" : "+d.getMinutes()+" : "+d.getSeconds();

}, 1000);
<p id="demo" ></p>

1
mahde amar
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)
}
0
Hamza Murtaza