Day.js npm (Cómo funciona para desarrolladores)
Los manejos de fechas y horas en JavaScript han sido históricamente una tarea desafiante debido a las limitaciones y peculiaridades del objeto Date incorporado. Aunque el objeto Date nativo proporciona funcionalidad básica, a menudo no cumple con respecto a la usabilidad, lo que lleva a los desarrolladores a buscar soluciones más robustas. Una de esas soluciones es Day.js, una biblioteca minimalista de JavaScript para analizar, validar, manipular y mostrar fechas y horas.
Este artículo explora las características, beneficios y usos de Day.js, demostrando por qué se ha convertido en una opción popular entre los desarrolladores.
¿Qué es Day.js?
Day.js es una biblioteca de JavaScript ligera que proporciona una API simple para trabajar con fechas y horas para mostrar la fecha y la hora correctamente en navegadores modernos. Fue diseñada como una alternativa a la API moderna y similar Moment.js, una biblioteca muy utilizada pero mucho más pesada. Day.js tiene solo 2kB de tamaño (comprimido), lo que lo convierte en una excelente opción para aplicaciones preocupadas por el rendimiento. A pesar de su pequeño tamaño, la biblioteca Day.js es una alternativa a Moment.js y ofrece características poderosas que cubren los casos de uso más comunes.

Características principales
Aquí hay algunas características clave de la biblioteca Day.js:
- Ligero: Con su tamaño diminuto y opciones de formato avanzadas, Day.js asegura que tu aplicación se mantenga rápida y eficiente.
- Inmutable: Los objetos Day.js son inmutables, lo que significa que los métodos no mutan el objeto original, sino que regresan nuevas instancias.
- API Encadenable: Los métodos en Day.js se pueden encadenar, haciendo el código más legible y conciso.
- Internacionalización: Day.js soporta múltiples configuraciones regionales, permitiendo una fácil localización de fechas y horas.
- Sistema de Plugins: Un sistema de plugins modular te permite extender la funcionalidad de Day.js sin sobrecargar la biblioteca central.
- Compatibilidad: Day.js está diseñado para ser compatible con la API de Moment.js, lo que facilita la migración de bases de código existentes.
Instalación
Day.js se puede instalar fácilmente a través de npm o yarn. También se puede incluir directamente en tu archivo HTML usando un CDN.
Uso de npm
npm install dayjsnpm install dayjsUso básico
Day.js ofrece un amplio soporte para zonas horarias, permitiendo a los desarrolladores gestionar fácilmente el tiempo local y realizar tareas de manipulación de tiempo con precisión. Con sus capacidades estrictas de análisis, Day.js asegura una interpretación precisa de los valores de fecha y hora, permitiendo resultados confiables y consistentes. Ya sea restando tiempo o actualizando valores, Day.js facilita el trabajo con fechas y horas, proporcionando características adicionales como la creación de nuevas instancias para mayor flexibilidad.
Veamos algunos ejemplos de trabajo con Day.js.
1. Creación de fechas
Crear una nueva instancia de fecha en Day.js es sencillo. El siguiente ejemplo lo demuestra:
const dayjs = require('dayjs');
// Current date and time
const now = dayjs();
// Specific date and time
const specificDate = dayjs('2023-05-25');const dayjs = require('dayjs');
// Current date and time
const now = dayjs();
// Specific date and time
const specificDate = dayjs('2023-05-25');2. Formateo de fechas
Day.js proporciona una manera flexible y poderosa de formatear fechas:
const date = dayjs('2023-05-25');
// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 2023const date = dayjs('2023-05-25');
// Format date as "YYYY-MM-DD"
console.log(date.format('YYYY-MM-DD')); // 2023-05-25
// Format date as "dddd, MMMM D, YYYY"
console.log(date.format('dddd, MMMM D, YYYY')); // Thursday, May 25, 20233. Análisis de fechas
Day.js puede analizar objetos de fecha a partir de cadenas y mostrar fechas en varios formatos:
const date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
// Check if the dates are the same
console.log(date1.isSame(date2)); // trueconst date1 = dayjs('2023-05-25');
const date2 = dayjs('05/25/2023', 'MM/DD/YYYY');
// Check if the dates are the same
console.log(date1.isSame(date2)); // true4. Manipulación de fechas
Day.js permite una fácil manipulación de fechas con su API encadenable:
const date = dayjs('2023-05-25');
// Add one week to the date
const nextWeek = date.add(1, 'week');
// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');
console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-25const date = dayjs('2023-05-25');
// Add one week to the date
const nextWeek = date.add(1, 'week');
// Subtract one month from the date
const lastMonth = date.subtract(1, 'month');
console.log(nextWeek.format('YYYY-MM-DD')); // 2023-06-01
console.log(lastMonth.format('YYYY-MM-DD')); // 2023-04-255. Comparación de fechas
Comparar fechas en Day.js es simple e intuitivo:
const date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true
// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false
// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // falseconst date1 = dayjs('2023-05-25');
const date2 = dayjs('2023-06-01');
// Check if date1 is before date2
console.log(date1.isBefore(date2)); // true
// Check if date1 is after date2
console.log(date1.isAfter(date2)); // false
// Check if date1 is the same as date2
console.log(date1.isSame(date2)); // false6. Localización
Day.js soporta la internacionalización (i18n) para trabajar con diferentes configuraciones regionales:
const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');
// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
// Set locale to French
dayjs.locale('fr');
// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
// Customize locale
dayjs.updateLocale('fr', {
months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});
// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023const dayjs = require('dayjs');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const localeData = require('dayjs/plugin/localeData');
const updateLocale = require('dayjs/plugin/updateLocale');
// Extend Day.js with plugins
dayjs.extend(localizedFormat);
dayjs.extend(localeData);
dayjs.extend(updateLocale);
// Set locale to French
dayjs.locale('fr');
// Display date in localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023
// Customize locale
dayjs.updateLocale('fr', {
months: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
weekdays: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']
});
// Display date in customized localized format
console.log(dayjs().format('dddd, MMMM D, YYYY')); // jeudi, mai 25, 2023Uso de Day.js con IronPDF para añadir fechas a PDFs en Node.js
Combinar el poder de Day.js, un paquete de biblioteca de fechas de JavaScript ligero, con IronPDF, una biblioteca versátil de generación y manipulación de PDF para Node.js, permite a los desarrolladores manejar eficientemente las fechas en sus documentos PDF.
IronPDF - La biblioteca PDF de Node.js
IronPDF para Node.js es una biblioteca integral que empodera a los desarrolladores para crear, manipular e interactuar con documentos PDF sin problemas dentro de sus aplicaciones Node.js. Ofreciendo un conjunto enriquecido de características, IronPDF simplifica tareas como la generación de PDFs a partir de HTML, URLs de sitios web o documentos existentes, añadiendo texto, imágenes y elementos interactivos, así como convertir HTML a PDF con precisión.

Para más información detallada sobre IronPDF para Node.js, por favor visita esta página de documentación.
Para empezar
Primero, asegúrate de tener instalados los paquetes necesarios. Puedes instalar Day.js e IronPDF vía npm:
npm i @ironsoftware/ironpdf
Añadir firmas digitales con fechas
IronPDF también soporta añadir firmas digitales a PDFs. Aquí te mostramos cómo añadir una firma con una marca de tiempo usando Day.js.
import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";
(async () => {
// Import a PDF
const pdf = await PdfDocument.open("sample.pdf");
// Get the current date and time for the signature
const signatureDate = dayjs().toDate();
// Sign the PDF with a digital certificate
await pdf.signDigitalSignature({
certificatePath: "IronSoftware.pfx",
certificatePassword: "123456",
signingReason: "To show how to sign a PDF",
signingLocation: "Chicago, USA",
signatureDate: signatureDate,
signatureImage: {
SignatureImagePath: "logo.png"
}
});
// Save the signed PDF
await pdf.saveAs("signed_with_date.pdf");
})();import dayjs from 'dayjs';
import { PdfDocument } from "@ironsoftware/ironpdf";
(async () => {
// Import a PDF
const pdf = await PdfDocument.open("sample.pdf");
// Get the current date and time for the signature
const signatureDate = dayjs().toDate();
// Sign the PDF with a digital certificate
await pdf.signDigitalSignature({
certificatePath: "IronSoftware.pfx",
certificatePassword: "123456",
signingReason: "To show how to sign a PDF",
signingLocation: "Chicago, USA",
signatureDate: signatureDate,
signatureImage: {
SignatureImagePath: "logo.png"
}
});
// Save the signed PDF
await pdf.saveAs("signed_with_date.pdf");
})();Aquí está el resultado:

También puedes usar ejemplos de código listos para usar para comenzar inmediatamente con la biblioteca en tu aplicación Node.js. Para una exploración más detallada, también puedes visitar esta página de Referencia API.
Conclusión
Day.js es una biblioteca poderosa y eficiente para gestionar fechas y horas en JavaScript. Su naturaleza ligera, soporte para estructuras de datos inmutables y compatibilidad con Moment.js lo hacen una opción atractiva para los desarrolladores que buscan manejar operaciones de fecha y hora sin añadir una sobrecarga significativa a sus aplicaciones.
Al integrar Day.js con IronPDF, los desarrolladores pueden manejar fácilmente las fechas en sus documentos PDF. Ya sea generando PDFs de URLs o cadenas HTML o añadiendo firmas digitales con marcas de tiempo, Day.js proporciona una forma simple y poderosa de manejar fechas. Esta combinación mejora la funcionalidad de tus aplicaciones de Node.js, permitiendo una robusta y dinámica gestión de documentos PDF.
Experimenta IronPDF a partir de $799. Comprueba por ti mismo cuán poderosa puede ser la generación y manipulación de PDF. ¡Pruébalo hoy!








