Sólo tiene que utilizar el módulo 12:
function formatTimeShow(h_24) {
var h = h_24 % 12;
return (h < 10 ? '0' : '') + h + ':00';
}
Módulo (%
) significa dividir y tomar resto. Por ejemplo, 17/12 = 1 con el resto 5. Entonces, el resultado del 17% 12 es 5. Y la hora 17 es la hora 5 en 12 horas.
Pero tenga en cuenta que esta función no está completa ya que no funciona para la hora 0 (o la hora 12). Para solucionarlo hay que añadir en otro cheque por que:
function formatTimeShow(h_24) {
var h = h_24 % 12;
if (h === 0) h = 12;
return (h < 10 ? '0' : '') + h + ':00';
}
También tenga en cuenta que se puede añadir un meridiano con facilidad, por ver si la hora es de menos de 12 (am) o igual a/mayor (por la tarde) :
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');
}
Nota: Todo lo anterior es suponiendo que el parámetro de esta función es un número entero entre 0 y 23.
¿Tan 'h' es solo un número entero entre 0 y 23? ¿Qué has intentado? –
Si realiza una gran cantidad de análisis de fecha/hora, podría ser interesante consultar [Datejs] (http://www.datejs.com/). – flitig