Vaya más allá de las capacidades de fecha y hora integradas de JavaScript con una de estas bibliotecas de reemplazo.

El soporte incorporado de JavaScript para el manejo de fechas es útil, pero puede ser incómodo de usar. Las operaciones complejas, como las conversiones de zona horaria y el formato de fecha, suelen ser un desafío.

Afortunadamente, hay varios paquetes disponibles que hacen que trabajar con fechas y horas en JavaScript sea menos estresante. Aquí, aprenderá sobre algunos de estos paquetes y cómo puede comenzar a trabajar en estos paquetes.

Cuando se trata de trabajar con fechas y horas, el objeto Date de JavaScript nativo tiene una funcionalidad limitada.

Moment.js, una biblioteca de JavaScript, introdujo muchas funciones que no estaban disponibles en el objeto Date nativo. Como resultado, se ha convertido en la biblioteca de referencia para trabajar con fechas y horas.

Para instalar Moment.js con npm, ejecute el siguiente comando desde el directorio de su proyecto:

npm instalar momento
instagram viewer

Después de la instalación, puede importar Moment.js a su proyecto y realizar operaciones con la biblioteca:

constante momento = requerir('momento');
constante ahora = momento();
constante ahoraCadena = ahora.formato('AAAA-MM-DD HH: mm: ss');

consola.registro(`La fecha y hora actual es ${cadena ahora}`);

Este fragmento de código importa la biblioteca Moment.js y crea un objeto de momento usando la fecha y hora actual con el momento() función. Luego demuestra cómo formatear el objeto de fecha creado como una cadena con el formato() método, que toma un formato de fecha/hora como argumento.

También puede usar esta biblioteca para sumar y restar intervalos de tiempo:

constante añadirDiezMinutos = momento().añadir(10, 'minutos');
consola.registro(`${añadirDiezMinutos.formato('h: mm a')}`);

constante restarDosDías = momento().restar(2, 'días');
consola.registro(`${restarDosDías.formato('dddd, MMMM Hacer AAAA')}`);

El programa registra dos variables en la consola, en diferentes formatos. La primera, añadirDiezMinutos, contiene el resultado de sumar 10 minutos a la fecha y hora actual. El segundo, restarDosDías, tiene el valor de fecha y hora actual con dos días restados de él.

Moment.js puede realizar otras operaciones, como verificar los años bisiestos y convertir de un formato de fecha a otro.

Es importante tener en cuenta que Moment.js ya no es mantenido por su equipo principal de desarrolladores. Los desarrolladores aconsejan usar una alternativa como Luxon.js.

Luxon.js es una biblioteca JavaScript robusta y más moderna para trabajar con fechas. Una alternativa a Moment.js, aborda las limitaciones de la biblioteca anterior, como la mutabilidad.

Puede instalar Luxon con npm y luego importar su Fecha y hora clase en su proyecto Node.js usando el requerir() función:

constante { Fecha y hora } = requerir('luxón');

En Luxon, los objetos DateTime se refieren a instancias de tiempo que llegan hasta los milisegundos.

Puedes crear nuevos Fecha y hora objetos y acceder a sus componentes, como el año, mes, minuto y segundo:

constante ahora = FechaHora.ahora();
constante año = ahora.año;
constante minuto = ahora.minuto;
constante segundo = ahora.segundo;

Este código crea un nuevo Fecha y hora objeto que representa la fecha y la hora actual utilizando el ahora() método. Luego accede a los componentes de esa fecha usando el año, minuto, y segundo propiedades.

Una diferencia importante entre Luxon.js y Moment.js es su carácter inmutable. Todos los objetos DateTime son inmutables en Luxon, lo que significa que no puede modificar las propiedades de DateTime. En su lugar, puede crear nuevas instancias de DateTime a partir de las existentes.

Por ejemplo:

constante ahora = FechaHora.ahora();
constante mañana = ahora.plus({ días: 1 });

Este código crea un nuevo Fecha y hora objeto llamado mañana basado en el ahora objeto, usando el más pasándole un valor de 1 día como argumento. El método plus crea un nuevo objeto DateTime con la cantidad especificada de días agregados al objeto original.

Otra ventaja de Luxon.js es su compatibilidad confiable con la zona horaria, que es esencial para trabajar con fechas y horas en las aplicaciones web modernas. La biblioteca utiliza la API de internacionalización en los navegadores modernos para brindar compatibilidad precisa con la zona horaria.

Sin embargo, una de las desventajas de Luxon.js son sus recursos comunitarios limitados.

Date-fns es una biblioteca de JavaScript muy liviana diseñada para trabajar con fechas y horas. Se basa en el objeto de JavaScript nativo.

Usos de fecha-fns tecnicas de programacion funcional e incorpora una función inmutable, que simplifica el trabajo con fechas y reduce la probabilidad de errores en su código.

Después de instalar date-fns con npm, importe el paquete a su programa usando la función require:

constante {formato, añadirDías} = requerir('fecha-fns');

Date-fns es modular. Contiene muchas funciones a las que puede acceder desestructurando el paquete, como se muestra en el bloque de código anterior. El código importa solo las funciones format y addDays de la biblioteca date-fns.

Aquí hay un ejemplo de cómo usar ambas funciones:

constante hoy = nuevoFecha();
constante formattedDate = formato (hoy, 'aaaa-MM-dd');
consola.log (fecha formateada);

constante mañana = formato (addDays (hoy, 1), 'aaaa-MM-dd');
consola.log (mañana);

Este programa demuestra el uso de la biblioteca date-fns en JavaScript para formatear y manipular fechas.

Crea un nuevo Fecha objeto que representa la fecha actual. Da formato a la fecha actual usando el formato función de la biblioteca date-fns.

Luego usa el añadirdías función para crear un nuevo objeto Fecha que represente la fecha de mañana, le da formato usando el formato y registra tanto la fecha actual como la fecha de mañana en la consola en "aaaa-MM-dd" formato.

Una desventaja de usar Date-fns es que no proporciona compatibilidad con la zona horaria. En su lugar, utiliza una biblioteca independiente para trabajar con zonas horarias mediante funciones auxiliares.

Day.js, otra biblioteca muy liviana, es una buena opción si está buscando una alternativa inmutable, más pequeña y más rápida a Moment.js.

Puede instalar Day.js como un paquete en su proyecto de JavaScript ejecutando el siguiente comando npm:

npm instalar diajs

Para importar Day.js a su proyecto después de la instalación, puede usar el siguiente código:

constante diajs = requerir('dayjs')

Aquí hay algunas funciones y métodos básicos disponibles en Day.js

constante ahora = diajs();

constante fecha = diajs('2023-03-23', 'AAAA-MM-DD');

constante mes = fecha.mes();

constante formattedDate = date.format('MMMM D, AAAA');

constante semana siguiente = fecha.añadir(1, 'semana');

El código anterior crea un nuevo objeto Day.js que representa la fecha y la hora actuales, analiza una cadena de fecha con un formato personalizado y obtiene el mes de la fecha variable. También muestra cómo formatear y agregar una instancia de fecha.

Al igual que Date-fns, Day.js no puede proporcionar soporte de zona horaria por sí solo. Day.js usa un sistema de complementos, lo que lo hace confuso de usar.

De los paquetes cubiertos, Day.js es el más similar a Moment.js. Esto hace que sea más fácil cambiar entre los dos si es necesario.

Elegir la biblioteca adecuada para su aplicación

Elegir la biblioteca de fecha y hora adecuada para su aplicación de JavaScript es una decisión importante que puede tener un gran impacto en la calidad y la capacidad de mantenimiento de su código.

Cada una de las bibliotecas discutidas aquí tiene sus fortalezas y debilidades, por lo que es importante evaluar cuidadosamente sus requisitos antes de tomar una decisión.