github twitter codepen youtube

Fechas con formato de tiempo relativo con JavaScript

Que pasa cuando necesitas formatear una fecha, claro recurres a instalar una dependencia que te lo resuelva, pero si está funcionalidad ya existe nativamente en JavaScript por qué no usarla. Pues aquí te presento la API de Intl.RelativeTimeFormat, demosle un vistazo.

Declaramos una nueva instancia y le pasamos como parametro el idioma ‘es’, por defecto toma el idioma Inglés ‘en’ sin necesidad de tener que descargar ninguna biblioteca.

const rtf = new Intl.RelativeTimeFormat("es");

rtf.format(-2, "day"); // "hace 2 días"
rtf.format(-3, "month"); // "hace 3 meses"

También lo puedes hacer con palabras:

const rtf = new Intl.RelativeTimeFormat("es", {
    numeric: "auto", // por defecto es "always"
});

rtf.format(-1, "day") // "ayer"
rtf.format(-2, "day") // "anteayer"

O también puedes acortar el formato:

const rtf = new Intl.RelativeTimeFormat("es", {
    style: "short", // por defecto es "long"
});

rtf.format(-1, "day") // "hace 1 d"
rtf.format(-2, "day") // "hace 2 d"

Browser compatibility

Lo mejor de todo es que funciona en todos los navegadores 👏, no tienes que usar más librerías de terceros.

Conclusión

Estar al tanto de las nuevas funciones del lenguaje nos puede ahorrar tiempo y hacer mejor mantenibles nuestros proyectos, ya que no dependen de librerías de terceros y mejoramos el performance reduciendo el código que no utilizamos .

Referencias

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat