it-swarm.com.de

Wie bekomme ich AM oder PM?

Ich habe Knöpfe mit den Namen von Großstädten.
Wenn ich auf sie klicke, möchte ich Ortszeit in ihnen. 

$('#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
});

Aber wie bekomme ich AM oder PM?

26
qadenza

Versuchen Sie es unter dem 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);
});
20
TechBytes

Sie sollten nur prüfen können, ob die Stunden größer als 12 sind.

var ampm = (hours >= 12) ? "PM" : "AM";

Aber haben Sie den Fall betrachtet, bei dem die Stunde weniger als 2 beträgt, bevor Sie 2 abziehen? Sie würden mit einer negativen Zahl für Ihre Stunde enden.

29
J W

Sie können so verwenden,

var dt = new Date();
    var h =  dt.getHours(), m = dt.getMinutes();
    var _time = (h > 12) ? (h-12 + ':' + m +' PM') : (h + ':' + m +' AM');

Ich hoffe, das wird auch mit Minuten besser.

8

mit date.js

<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>

du kannst so schreiben

new Date().toString("hh:mm tt")

cheet Sheet ist hier Formatangaben
tt ist für AM/PM

4
Sameera R.

Wenn hours kleiner als 12 ist, handelt es sich um 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;

Nun, da Sie getUTCHours nicht verwendet haben, ist es momentan 2 Stunden danach

hours + ' ' + am; // "6 p.m."
3
Paul S.

sehr interessanter Beitrag. In einer Funktion, die ein Datum als Parameter annimmt, kann es so aussehen: 

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;

}
2
jeremy-denis

Versuche dies:

h = h > 12 ? h-12 +'PM' : h +'AM';
2
elclanrs

Am besten ohne Erweiterungen und komplexe Codierung: 

date.toLocaleString([], { hour12: true});

Wie wird Javascript-Zeit im 12-Stunden-Format angezeigt?

0
Edwin Mendez