J'ai des boutons avec les noms des grandes villes.
En cliquant dessus, je veux obtenir l'heure locale en eux.
$('#btnToronto').click(function () {
var hours = new Date().getHours();
var hours = hours-2; //this is the distance from my local time
alert ('Toronto time: ' + hours + ' h'); //this works correctly
});
Mais comment puis-je obtenir AM ou PM?
Essayez ci-dessous le code:
$('#btnToronto').click(function () {
var hours = new Date().getHours();
var hours = (hours+24-2)%24;
var mid='am';
if(hours==0){ //At 00 hours we need to show 12 am
hours=12;
}
else if(hours>12)
{
hours=hours%12;
mid='pm';
}
alert ('Toronto time: ' + hours + mid);
});
Vous devriez juste pouvoir vérifier si les heures sont supérieures à 12.
var ampm = (hours >= 12) ? "PM" : "AM";
Mais avez-vous envisagé le cas où l'heure est inférieure à 2 avant de soustraire 2? Vous vous retrouveriez avec un nombre négatif pour votre heure.
Vous pouvez utiliser comme ça,
var dt = new Date();
var h = dt.getHours(), m = dt.getMinutes();
var _time = (h > 12) ? (h-12 + ':' + m +' PM') : (h + ':' + m +' AM');
J'espère que ce sera mieux avec les minutes aussi.
avec date.js
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>
tu peux écrire comme ça
new Date().toString("hh:mm tt")
feuille de cheet est ici spécificateurs de formattt
est pour AM/PM
Si hours
est inférieur à 12
, c'est le a.m. .
var hours = new Date().getHours(), // this is local hours, may want getUTCHours()
am;
// adjust for timezone
hours = (hours + 24 - 2) % 24;
// get am/pm
am = hours < 12 ? 'a.m.' : 'p.m.';
// convert to 12-hour style
hours = (hours % 12) || 12;
Maintenant, pour moi, vous n’avez pas utilisé getUTCHours
, c’est actuellement 2 heures après
hours + ' ' + am; // "6 p.m."
post très intéressant. dans une fonction qui prend une date en paramètre il peut apparaître comme ça:
function hourwithAMPM(dateInput) {
var d = new Date(dateInput);
var ampm = (d.getHours() >= 12) ? "PM" : "AM";
var hours = (d.getHours() >= 12) ? d.getHours()-12 : d.getHours();
return hours+' : '+d.getMinutes()+' '+ampm;
}
Essaye ça:
h = h > 12 ? h-12 +'PM' : h +'AM';
La meilleure façon sans extensions et codage complexe:
date.toLocaleString([], { hour12: true});
Comment affichez-vous javascript datetime au format 12 heures AM/PM?