0 Comentarios
Trabajar con fechas en JavaScript puede parecer sencillo al principio, pero conforme te adentras en proyectos reales, te das cuenta de que es todo un mundo. Y no siempre fácil. Por eso hoy vamos a contarte cómo funciona el objeto Date en JavaScript, cómo se manipulan fechas correctamente y qué trucos conviene conocer para no perder tiempo con errores tontos.
Si alguna vez has querido mostrar la fecha actual en tu web, calcular la diferencia entre dos eventos o simplemente dar formato a una fecha de forma legible, este artículo es para ti.
Las fechas están en todas partes. Formularios, blogs, sistemas de reservas, logs de actividad... No hay desarrollo web serio que no necesite gestionar fechas y horas en algún momento.
JavaScript, como lenguaje orientado al navegador y muy usado en el backend con Node.js, nos ofrece un objeto nativo llamado Date que permite trabajar con fechas y horas de forma relativamente sencilla, aunque tiene sus peculiaridades.
Antes de usarlo a lo loco, conviene entender bien cómo funciona internamente este objeto.
Hay varias formas de crear un objeto Date:
new Date(): crea la fecha actual.
new Date(2025, 11, 1): año, mes (empieza en 0), día.
new Date("2025-12-01T10:00:00"): formato ISO.
new Date(1700000000000): a partir de un timestamp (milisegundos desde 1970).
Cuidado con el mes, que empieza en 0 (enero), y no en 1.
Internamente, el objeto Date almacena el número de milisegundos desde el 1 de enero de 1970 (hora UTC). Luego, cuando accedes a partes como el mes o el día, JavaScript lo convierte a la zona horaria local de tu navegador.
Esto a veces genera confusiones si no lo sabes.
Una vez tienes una fecha, puedes obtener sus componentes:
getFullYear()
getMonth()
getDate()
getHours()
getMinutes()
getSeconds()
Y sus versiones UTC (getUTCFullYear(), etc.).
Aquí es donde empieza lo divertido... y también los errores si no vas con cuidado.
Puedes modificar fechas con métodos como:
setFullYear(2024)
setMonth(5) // junio
setDate(15)
O combinarlos para hacer saltos de fecha dinámicos.
Para restar fechas:
const inicio = new Date("2025-12-01T10:00:00");
const fin = new Date("2025-12-02T10:00:00");
const diferencia = fin - inicio; // en milisegundos
const horas = diferencia / (1000 * 60 * 60);
No compares fechas con == o ===. Usa .getTime() o resta directa:
if (fecha1.getTime() === fecha2.getTime()) { ... }
Mostrar una fecha al usuario no es trivial si quieres que quede bien.
El método .toLocaleDateString() permite mostrar la fecha adaptada a cada idioma:
fecha.toLocaleDateString('es-ES', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
Puedes montar tu propio formato:
`${fecha.getDate()}/${fecha.getMonth()+1}/${fecha.getFullYear()}`
Olvidarse de sumar 1 al mes.
No tratar bien los ceros en días/meses.
No tener en cuenta la zona horaria del usuario.
Aquí van algunos consejos prácticos que hemos aprendido a base de prueba y error.
Evita confiar ciegamente en la hora local. Si trabajas con usuarios de distintos países, guarda las fechas en UTC y conviértelas solo en el frontend.
El mes empieza en 0, el día en 1.
Si pones new Date(2025, 1, 30), obtendrás 2 de marzo (porque febrero tiene solo 29 días en bisiesto).
El objeto Date funciona, sí. Pero tiene limitaciones.
Temporal es una nueva API mucho más robusta, precisa y fácil de usar. Está en fase avanzada y promete sustituir a Date en muchas situaciones. Ejemplo:
Temporal.Now.plainDateISO().toString();
Si trabajas en proyectos grandes, librerías como Day.js, Luxon o date-fns te facilitan la vida:
Mejor manejo de husos horarios.
Formateo más potente.
Código más limpio.
document.getElementById('fecha').textContent = new Date().toLocaleDateString();
const log = `[${new Date().toISOString()}] Usuario inició sesión`;
setInterval(() => {
const ahora = new Date();
const fin = new Date("2025-12-31T23:59:59");
const diferencia = fin - ahora;
// Mostrar días, horas, minutos...
}, 1000);
Dominar el uso del objeto Date (y sus alternativas) es esencial si quieres desarrollar aplicaciones web modernas, profesionales y robustas.
Sabemos que al principio puede parecer lioso. Pero con práctica y atención a los detalles, pronto sabrás crear, formatear, comparar y manipular fechas como un auténtico pro.
Y si estás desarrollando un proyecto web serio y necesitas ayuda con la programación o el diseño... te invitamos a conocer nuestros servicios de diseño web en Alicante. Nos encantará ayudarte a construir algo genial.

¿Qué te ha parecido este artículo?