En varios de mis proyectos con JavaScript utilizo el timestamp en lugar de la fecha como cadena y después formateo esa cantidad de milisegundos usando Intl.DateTimeFormat
.
Es decir, convierto el timestamp a una fecha con JS.
Lo ocupo en tantos lugares pero nunca me he dispuesto a compartirlo aquí por lo simple que es. Ahora como lo voy a ocupar en un proyecto de notas, vengo a publicarlo de una vez.
Así que hoy veremos cómo convertir algo como 1687479441903 en 22 jun 2023, 18:17:21 teniendo la opción de modificar el formato de la fecha y hora respetando el locale o idioma.
Nota: esto funcionará independientemente del lugar donde guardes el timestamp. Puede estar en el cliente o servidor.
Milisegundos a fecha legible con JS
En JavaScript podemos crear objetos de la clase Date
para crear fechas. El constructor admite distintos parámetros, y uno de ellos es el de los milisegundos, así que solo debemos crear una nueva instancia de Date a partir de los milisegundos.
Luego podemos usar Intl.DateTimeFormat
con su método format
que acepta un objeto de tipo Date y devuelve una cadena con la fecha formateada.
Podemos encerrar todo eso en la siguiente función:
const formateador = new Intl.DateTimeFormat("es-MX", { dateStyle: 'medium', timeStyle: 'medium' });
const milisegundosComoFecha = (milisegundos) => {
return formateador.format(new Date(milisegundos));
};
Fíjate que estoy creando un formateador para español de México (puedes adaptarlo según tu idioma) pasando el estilo de la fecha y la hora.
Luego dentro de la función recibo los milisegundos, instancio un nuevo objeto de tipo Date
y se lo paso a formateador.format
.
De este modo podemos convertir un entero representando milisegundos a una fecha totalmente legible. Y puedes cambiar los parámetros del formateador para mostrar solo la fecha, solo la hora, el día de la semana, etcétera.
Aquí te dejo más tutoriales de JavaScript.