En este artículo de programación en JavaScript te enseñaré a convertir milisegundos a segundos y minutos legibles para el usuario.
Por ejemplo, convertir 1500
milisegundos a 1
segundo en su representación 00:01.5
en donde tenemos los minutos, luego los segundos y luego la fracción del segundo: algo así como para un cronómetro.
Milisegundos a segundos y minutos
Para convertir desde milisegundos a segundos y minutos (incluso a horas con algunas modificaciones) simplemente tenemos que hacer operaciones matemáticas.
En el caso de los minutos debemos dividir los milisegundos entre 1000 (para convertir a segundos) y luego entre 60 (para convertir a minutos). El resultado debe ser convertido a entero.
Después de eso restamos los milisegundos que ya convertimos a minutos para tener un sobrante de milisegundos. A ese sobrante lo dividimos entre 1000 y serán los segundos con fracción.
Función en JavaScript
Lo que expliqué anteriormente se traduce al siguiente código. Por cierto, también he agregado un método que agrega un cero a la izquierda si es que es necesario, para que por ejemplo el 9
sea convertido a 09
pero el 10
sea dejado intacto.
Queda así:
/*
https://parzibyte.me/blog
*/
const agregarCeroSiEsNecesario = valor => {
if (valor < 10) {
return "0" + valor;
} else {
return "" + valor;
}
}
const milisegundosAMinutosYSegundos = (milisegundos) => {
const minutos = parseInt(milisegundos / 1000 / 60);
milisegundos -= minutos * 60 * 1000;
const segundos = (milisegundos / 1000);
return `${agregarCeroSiEsNecesario(minutos)}:${agregarCeroSiEsNecesario(segundos.toFixed(1))}`;
};
const pruebas = [60000, 15000, 1000, 600000];
for (const prueba of pruebas) {
const conversion = milisegundosAMinutosYSegundos(prueba);
console.log("Los %d milisegundos se convierten a %s\n", prueba, conversion);
}
Nota: en la línea 15 estoy usando las plantillas de cadena.
La salida ya la pudiste ver en la imagen que acompaña al encabezado.
Eres libre de modificarlo y adaptarlo a tus necesidades. Como te dije, puedes hacer que muestre incluso las horas o extraer los valores por separado y darles otro uso.
Por ahora he ejecutado la función en Node (del lado del servidor) pero funciona en el lado del cliente de igual forma, pues al final el lenguaje es el mismo: JavaScript.