Gráffica Academy
Creado para la ComunidadAprende a programar
Escribir al equipo

Contacta con el equipo de Gráffica Estudio Academy.

IG @ X in
Estructuras de datos

Fechas

Cualquier aplicación real necesita trabajar con fechas: cuándo se creó un pedido, cuántos días de racha lleva un usuario (como la que ya usa esta misma academia), cuándo caduca algo. El objeto Date de JavaScript es la herramienta clásica para esto — con algunas peculiaridades que conviene conocer antes de que te sorprendan.

Crear una fecha

new Date()

La fecha y hora actuales, exactas al momento de ejecutarse.

new Date('2026-03-15')

Una fecha concreta, a partir de un string en formato ISO (año-mes-dia).

new Date(2026, 2, 15)

Año, mes, día por separado — con una trampa: los meses empiezan en 0 (enero es 0, marzo es 2).

crear-fechas.js
1
Pulsa "Ejecutar" para ver el resultado.
⚠️ Error clásico: los meses empiezan en 0

getMonth() devuelve 0 para enero y 11 para diciembre. Es la fuente de bugs "off-by-one" más famosa de todo JavaScript — si necesitas mostrar el mes al usuario, recuerda sumar 1.

.getFullYear()

El año con cuatro dígitos.

.getMonth()

El mes, de 0 (enero) a 11 (diciembre).

.getDate()

El día del mes, de 1 a 31.

.getDay()

El día de la semana, de 0 (domingo) a 6 (sábado).

.getHours() / .getMinutes()

La hora y los minutos.


Formatear fechas para mostrarlas

Para mostrar una fecha legible sin construir el string a mano, toLocaleDateString() usa el formato del idioma que le indiques:

formatear.js
1
Pulsa "Ejecutar" para ver el resultado.

Comparar fechas y calcular diferencias

Internamente, una fecha en JavaScript es un número: los milisegundos transcurridos desde el 1 de enero de 1970. getTime() te da ese número, lo que permite restar fechas para saber cuánto tiempo ha pasado entre una y otra:

diferencia-fechas.js
1
Pulsa "Ejecutar" para ver el resultado.
💡 De dónde salen los "días consecutivos" de tu propio perfil

La racha de días que ves en tu perfil de Gráffica Academy (arriba a la derecha) funciona con exactamente esta idea: cada visita se guarda como una fecha, y un pequeño cálculo de diferencias entre días consecutivos decide si la racha sigue viva o se ha roto.


Lo que viene: la propuesta Temporal

Date tiene años (nunca mejor dicho) y varios defectos conocidos: es mutable, mezcla fecha con hora, y su manejo de zonas horarias es confuso. Por eso existe Temporal, una propuesta moderna para sustituirlo con una API mucho más clara — pero todavía está en proceso de estandarización y no está disponible en todos los navegadores. Por ahora, para cualquier proyecto real, Date sigue siendo la herramienta que vas a usar.

Comprueba lo que has aprendido

3 preguntas · sin nota, solo para afianzar lo de hoy

1. Si fecha.getMonth() devuelve 0, ¿qué mes es?

2. ¿Qué representa internamente un objeto Date en JavaScript?

3. ¿Por qué existe la propuesta Temporal?

Síguenos IG @ X in