Trabajo con fechas y horas en JavaScript: guía completa para Node.js

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course
```html

Trabajo con fechas y horas en JavaScript (Node.js): desde lo básico hasta técnicas avanzadas



Trabajar con fechas y horas es una de las tareas más comunes en el desarrollo web. Ya sea para registro de eventos, procesamiento de datos de usuario, planificación de tareas o visualización de marcas de tiempo — no se puede prescindir de saber manejar fechas en JavaScript. En este artículo, analizaremos todos los aspectos clave del trabajo con fechas en el entorno Node.js: desde la creación y el formateo hasta manipulaciones complejas con zonas horarias y el uso de bibliotecas populares.



Conceptos básicos: el objeto Date en JavaScript



El objeto incorporado Date es la base para trabajar con fechas. Almacena la cantidad de milisegundos transcurridos desde el 1 de enero de 1970 (Época Unix).



Creación de una fecha



Existen varias formas de crear una instancia de Date:



// Fecha y hora actualconst now = new Date();console.log(now); // 2025-03-15T10:30:00.000Z

// Desde milisegundos (Unix timestamp)const fromTimestamp = new Date(1742025000000);console.log(fromTimestamp); // 2025-03-15T10:30:00.000Z

// Desde una cadena (ISO 8601)const fromString = new Date('2025-03-15T10:30:00');console.log(fromString);

// Desde componentes (año, mes, día, hora, minuto, segundo, milisegundo)const fromComponents = new Date(2025, 2, 15, 10, 30, 0, 0); // Meses: 0-11console.log(fromComponents); // March 15, 2025 10:30:00


Importante: los meses en JavaScript se numeran desde 0 (enero es 0, diciembre es 11).



Obtención de componentes de la fecha



Métodos para extraer partes individuales de la fecha:



const date = new Date('2025-03-15T10:30:45.123Z');

console.log(date.getFullYear()); // 2025console.log(date.getMonth()); // 2 (marzo)console.log(date.getDate()); // 15console.log(date.getDay()); // 6 (sábado, 0 - domingo)console.log(date.getHours()); // 10console.log(date.getMinutes()); // 30console.log(date.getSeconds()); // 45console.log(date.getMilliseconds());// 123console.log(date.getTime()); // milisegundos desde la época


Formateo de fechas en Node.js



El Date estándar proporciona capacidades de formateo limitadas. Para una salida legible, use toLocaleDateString() y toLocaleString().



const date = new Date('2025-03-15T10:30:00');

// Formateo localizadoconsole.log(date.toLocaleDateString('es-ES')); // 15/3/2025console.log(date.toLocaleTimeString('es-ES')); // 10:30:00console.log(date.toLocaleString('es-ES')); // 15/3/2025, 10:30:00

// Con opcionesconst options = { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long', hour: '2-digit', minute: '2-digit'};console.log(date.toLocaleString('es-ES', options)); // sábado, 15 de marzo de 2025, 10:30


Formateo personalizado



Para un control total, escriba una función simple:



function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {  const map = {    YYYY: date.getFullYear(),    MM: String(date.getMonth() + 1).padStart(2, '0'),    DD: String(date.getDate()).padStart(2, '0'),    HH: String(date.getHours()).padStart(2, '0'),    mm: String(date.getMinutes()).padStart(2, '0'),    ss: String(date.getSeconds()).padStart(2, '0'),  };  return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => map[match]);}

console.log(formatDate(new Date(), 'DD.MM.YYYY')); // 15.03.2025console.log(formatDate(new Date(), 'HH:mm:ss')); // 10:30:00


Manipulación de fechas: suma, resta, comparación



Las fechas se pueden modificar directamente a través de los métodos set* o trabajando con milisegundos.



Sumar y restar tiempo



const date = new Date('2025-03-15T10:30:00');

// Añadir 5 díasdate.setDate(date.getDate() + 5);console.log(date); // 2025-03-20T10:30:00

// Añadir ```

Blogs

Book Recommendations