Trabajando con Dates Usando el date-fns en JavaScript
trabajando con dates no es una tarea fácil. Pero el paquete date-fns
facilita el trabajo con el dates en JavaScript.
Profundicemos en el paquete date-fns
nos hace la vida más fácil que antes. El paquete date-fns
es ligero.
La instalación del paquete
Necesitamos configurar el proyecto con npm para trabajar con un third-paquete de fiesta. Veamos rápidamente los pasos para completar nuestra configuración.
Supongo que tienes NodeJS instalado or IDE para practicar esto.
- navegarate al directorio deseado en el que desea trabajar.
- Ejecuta el comando
npm init
para inicializar el proyecto. - Responda todas las preguntas según su preferencia.
- Ahora, instale el
date-fns
usando el siguiente comando
npm install date-fns
- Create un archivo llamado
dateFunctions.js
Ahora, estamos listos para saltar al paquete. date-fns
. Vayamos y aprendamos algunos métodos esenciales del paquete.
es válida
Todo dates no son válidos.
Por ejemplo, no hay date como 2021-02-30
. ¿Cómo podemos comprobar si el date es valido o no?
El método isValid
del desplegable date-fns
el paquete nos ayudará a encontrar si el d dadoate es válido o no.
Examine si el siguiente código funciona bien o no con la validez del dates.
const { isValid } = require("date-fns");
console.log(isValid(new Date("2021, 02, 30")));
Si ejecuta el código anterior, encontrará 30th February 2021
es válido. ¡Oh! No es.
¿Por qué está sucediendo?
JavaScript convierte el extra día de febrero a 1st March 2021
cual es una d válidaate. Para confirmarlo, imprima new Date("2021, 02, 30")
a la consola
console.log(new Date("2021, 02, 30"));
El paquete date-fns
proporciona un método llamado parse
para solucionar este problema. El método parse
analiza la date que has dado y devuelve exactamenteate resultados.
Eche un vistazo al siguiente código.
const { isValid, parse } = require("date-fns");
const invalidDate = parse("30.02.2021", "dd.MM.yyyy", new Date());
const validDate = parse("25.03.2021", "dd.MM.yyyy", new Date());
console.log(isValid(invalidDate));
console.log(isValid(validDate));
formato
Uno de los usos básicos al trabajar con dates los está formateando como queremos. Formateamos la d.ates en diferentes formatos utilizando el format
método del date-fns
paquete.
Formatee la date as 23-01-1993
, 1993-01-23 10:43:55
, Tuesday, January 23rd 1993
, etc., ejecute el siguiente código para obtener el d correspondienteate en los formatos mencionados.
const { format } = require("date-fns");
console.log(format(new Date(), "dd-MM-yyyy"));
console.log(format(new Date(), "dd/MM/yyyy HH:mm:ss"));
console.log(format(new Date(), "PPPP"));
Puedes encontrar la lista completa de formatos aquí.
añadirdías
El método addDays
se utiliza para establecer una fecha límite posterior a algunos días.
Simplemente, podemos agregar días a cualquier d.ate para conseguir la date del día después de algunos días. Tiene muchas aplicaciones.
Digamos que tienes un cumpleaños después de X días y estás ocupado esos días. Es posible que no recuerde el cumpleaños en su apretada agenda. Simplemente puede hacer uso de la addDays
método para notificarle sobre el cumpleaños después de X días. Tenga el código.
const { format, addDays } = require("date-fns");
const today = new Date();
// birthday after 6 days
const birthday = addDays(today, 6);
console.log(format(today, "PPPP"));
console.log(format(birthday, "PPPP"));
Similar al método addDays
hay otros métodos como addHours
, subHours
, addMinutes
, subMinutes
, addSeconds
, subSeconds
, subDays
, addWeeks
, subWeeks
, addYears
, subYears
, etc., puede adivinar fácilmente la funcionalidad de los métodos con sus nombres.
Pruébalos.
formatoDistancia
Escribir código para comparar dates desde cero es una pesadilla. ¿Por qué comparamos date¿Es de todos modos?
Hay muchas aplicaciones en las que has visto date comparaciones. Si toma sitios web de redes sociales, habrá un eslogan que mencione 1 hace un minuto, hace 12 horas, hace 1 día, etc., aquí usamos date comparación de la publicación date y tiempo para presentar date y tiempo.
El método formatDistance
hace lo mismo. Devuelve la brecha entre los dos d dadosates.
Escribamos un programa para encontrar tu edad.
const { formatDistance } = require("date-fns");
const birthday = new Date("1956, 01, 28");
const presentDay = new Date();
console.log(`Age: ${formatDistance(presentDay, birthday)}`);
cadaDíaDeIntervalo
Digamos que tienes que encontrar los nombres y d de los próximos X días.ates. El método eachDayOfInterval
nos ayuda a encontrar los días entre el inicio y el final date.
Averigüemos dentro de los próximos 30 días a partir de hoy.
const { addDays, eachDayOfInterval, format } = require("date-fns");
const presentDay = new Date();
const after30Days = addDays(presentDay, 30);
const _30Days = eachDayOfInterval({ start: presentDay, end: after30Days });
_30Days.forEach((day) => {
console.log(format(day, "PPPP"));
});
max y min
Los métodos max
y min
encuentra el máximo y el mínimo dates entre los dados daterespectivamente. Los métodos en el date-fns
son muy familiares y fáciles de adivinar la funcionalidad de esos métodos. Escribamos un código.
const { min, max } = require("date-fns");
const _1 = new Date("1990, 04, 22");
const _2 = new Date("1990, 04, 23");
const _3 = new Date("1990, 04, 24");
const _4 = new Date("1990, 04, 25");
console.log(`Max: ${max([_1, _2, _3, _4])}`);
console.log(`Min: ${min([_1, _2, _3, _4])}`);
es igual
Puedes adivinar fácilmente la funcionalidad del método. isEqual
. Como piensas el método isEqual
se utiliza para comprobar si dos dates son iguales o no. Vea el código de muestra a continuación.
const { isEqual } = require("date-fns");
const _1 = new Date();
const _2 = new Date();
const _3 = new Date("1900, 03, 22");
console.log(isEqual(_1, _2));
console.log(isEqual(_2, _3));
console.log(isEqual(_3, _1));
Para Concluir
Si hablamos de todos los métodos del date-fns
paquete, entonces toma días para completar. La mejor manera de aprender cualquier paquete es familiarizarse con los métodos esenciales del mismo y luego leer la documentación para obtener más información. Aplicar el mismo escenario para el date-fns
paquete también
Ha aprendido los métodos esenciales en este tutorial. Busque el uso específico en el documentación o considere tomar cursos en línea como JavaScript, jQuery y JSON.
Codificación feliz 👨💻