2016-04-15 6 views
0

Id es möglich, wie etwas zu tun:Javascript Format Zeit Militär am pm von String

var format = "ampm"; 
var time = '22:15:05'; 

if(format == "ampm") { 
    return '10:15 pm'; 
} else { 
    return '22:15'; 
} 

Alle Beispiele, die ich mit dem aktuellen Datum und Zeit verwenden new Date() gefunden, aber in meinem Fall ich gerade brauchen Uhrzeit-String aus der Datenbank übergeben.

+0

Es gibt ein kajillion date Formatierung Bibliotheken da draußen. Warum nicht [eines auswählen] (https://github.com/nomiddlename/date-format) und es verwenden? – tadman

+1

Mögliches Duplikat von [Javascript: konvertieren 24-Stunden-Uhrzeit-String zu 12 Stunden Zeit mit AM/PM und keine Zeitzone] (http://stackoverflow.com/questions/13898423/javascript-convert-24-hour -Zeit-von-Tag-String-zu-12-Stunden-Zeit-mit-Am-Uhr-und-Nein) – Rayon

+0

@tadman Ich möchte nicht eine ganze Bibliothek nur für diese verwenden – Alko

Antwort

0

Hier ist eine Funktion, die Sie verwenden können:

function timeFormat(time, format) { 
 
    var parts = time.split(':'); 
 
    var hour = parseInt(parts[0]); 
 
    var suffix = ''; 
 
    if (format === 'ampm') { 
 
     suffix = hour >= 12 ? ' pm' : ' am'; 
 
     hour = (hour + 11) % 12 + 1; 
 
    } 
 
    return ('0' + hour).substr(-2) + ':' + parts[1] + suffix; 
 
} 
 

 
// Demo with some sample input 
 
var input = ['00:21:13', '11:59:20', '12:01:33', '16:00:00', '23:59:59']; 
 
for (var time of input) { 
 
    document.write(time + ' = ' + timeFormat(time, 'ampm') + '<br>'); 
 
}

Beachten Sie, dass es streift die Sekunden; es gibt keine Rundung.

+0

Danke das funktioniert perfekt. – Alko

+0

Gern geschehen. – trincot