Wystarczy użyć Modulus 12:
function formatTimeShow(h_24) {
var h = h_24 % 12;
return (h < 10 ? '0' : '') + h + ':00';
}
Moduł (%
) oznacza podzielić i brać resztę. Na przykład 17/12 = 1 z pozostałą 5. Więc wynik 17% 12 wynosi 5. A godzina 17 to godzina 5 w 12-godzinnym czasie.
Należy jednak pamiętać, że ta funkcja nie jest kompletna, ponieważ nie działa dla godziny 0 (lub godziny 12). Aby to naprawić trzeba dodać w innym czeku na to:
function formatTimeShow(h_24) {
var h = h_24 % 12;
if (h === 0) h = 12;
return (h < 10 ? '0' : '') + h + ':00';
}
Należy również pamiętać, że można dodać południk łatwo, widząc, czy godziny jest mniejsza niż 12 (am) lub równa/większa (pm) :
function formatTimeShow(h_24) {
var h = h_24 % 12;
if (h === 0) h = 12;
return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}
Uwaga: Wszystkie powyższe jest przy założeniu, że parametr do tej funkcji jest liczbą całkowitą od 0 do 23.
Więc 'h' jest po prostu liczbą całkowitą z przedziału od 0 do 23? Co próbujesz? –
Jeśli wykonujesz wiele analizowania daty/czasu, może być ciekawie sprawdzić [Datejs] (http://www.datejs.com/). – flitig