Cargando...

Fechas en JavaScript

Tu compañero anota marzo como 3 porque en el calendario de pared es el tercer mes, y el programa le construye abril sin quejarse. Para cerrar esa discusión dejamos quieta una sola mañana: la sala de lectura abre el jueves 14 de marzo de 2024 a las 9:30. Si cada recarga pide «ahora», la mañana se mueve y el ejemplo se pierde.

No estás buscando en una lista

En el array la respuesta era una casilla, un −1, un sí o un no, o el propio sello. Una fecha no se encuentra así. La armas tú, y cada pregunta saca un dato distinto de esa misma mañana. Preguntar no adelanta el reloj.

La chuleta de este jueves, no un glosario

Mira qué número corresponde a cada pregunta en esta mañana, y al lado el trueque que más se ve en clase.

📊 Chuleta de este jueves

Método Qué estás preguntando Número de esta mañana El trueque de siempre
getFullYear el año escrito entero 2024 dejarlo en 24
getMonth dónde se sienta marzo dentro del objeto 2 leerlo como 3
getDate qué día del mes es 14 confundirlo con el jueves
getDay qué puesto ocupa el jueves 4 confundirlo con el 14
getHours la hora en un día de 0 a 23 9 buscar una marca de mañana
getMinutes el minuto 30 pedirle el 30 a la hora

Enero es 0, febrero 1, marzo 2. Domingo es 0, lunes 1, martes 2, miércoles 3, jueves 4. El cero del array era la primera casilla. Estos ceros son el principio del año y de la semana.

Saca el año antes de pelearte con el mes

2024 sale entero del primer hueco. Esta lectura no lo parte en 24, y el día, la hora y el minuto se quedan para otras preguntas.

El año del jueves

javascript
let opened = new Date(2024, 2, 14, 9, 30);
console.log(opened.getFullYear());

Aparece 2024 porque eso pusiste al principio. El 2 del mes no sale en esta línea, pero desde que construiste la mañana ya quiere decir marzo. 24 es un recorte que esta lectura no hace.

Marzo, sentado dentro del objeto

javascript
let opened = new Date(2024, 2, 14, 9, 30);
console.log(opened.getMonth());

Tu compañero, en cuanto ve el 2, quiere sumar 1 «para que ya sea marzo». El 2 ya es marzo, porque enero ocupó el 0. El 1 que le falta al calendario de pared entra más adelante, cuando la página arme la frase. En esta llamada no se toca.

El 14 y el jueves

javascript
let opened = new Date(2024, 2, 14, 9, 30);
console.log(opened.getDate());
console.log(opened.getDay());

14 es el día dentro de marzo y 4 es el jueves, contando desde el domingo. Salen seguidos porque pediste las dos cosas, no porque sean la misma pregunta. Si cruzas los métodos, lees una fecha y crees que es el nombre del día, o al revés.

Las nueve y media

javascript
let opened = new Date(2024, 2, 14, 9, 30);
console.log(opened.getHours());
console.log(opened.getMinutes());

Primero 9, después 30. Las horas arrancan en 0 a medianoche y llegan hasta 23, así que ese 9 es la mañana y no necesita una etiqueta aparte. El 30 es el minuto. Quien se lo pide a la hora está mirando la aguja que no es.

La visita del día 20

javascript
let opened = new Date(2024, 2, 14, 9, 30);
let visit = new Date(2024, 2, 20, 15, 0);
console.log(visit.getTime() > opened.getTime());
console.log(visit.getDate());

La visita cae el 20 de marzo a las 15:00, después de la apertura. getTime convierte cada momento en un número que se puede ordenar, y la comparación queda en true. La línea de abajo es 20, el día de esa visita, no el resultado de comparar. === pregunta otra cosa: si los dos nombres señalan un solo objeto. Aquí hay dos.

La frase para quien no ve el código

El año y el día salen tal cual. El mes lo escribes como lo cuenta el calendario de pared.

Frase para quien lee

html
<!DOCTYPE html>
<html>
<head>
<title>dates — page</title>
</head>
<body>
<p id="when">…</p>
<script>
let opened = new Date(2024, 2, 14, 9, 30);
let year = opened.getFullYear();
let displayMonth = opened.getMonth() + 1;
let day = opened.getDate();
let box = document.getElementById("when");
box.textContent = year + "-" + displayMonth + "-" + day;
</script>
</body>
</html>

El párrafo queda en 2024-3-14. Si vuelves a preguntarle el mes al objeto, sigue en 2. El número corrido vive en la frase que arma la página para el ojo. La mañana guardada no se ha movido.

Comprueba el jueves en seis sitios

Tiene que cuadrar con esta mañana, no con un calendario genérico.

  1. El año entero es 2024, no 24
  2. Dentro del objeto, marzo es 2
  3. El 14 sale de getDate y el 4 del jueves sale de getDay
  4. La hora es 9 y el minuto es 30
  5. La visita del 20 es posterior, la comparación es true y ese día es 20
  6. La frase del párrafo es 2024-3-14 y el objeto sigue guardando el mes como 2

El programa sigue, el día no

Nadie te avisa. Solo cambia el mes o el dato que creías leer.

  • Le pasas 3 a new Date queriendo marzo, y construyes abril
  • Lees el 2 como febrero, o exiges que getMonth diga 3
  • Pides el 14 con getDay
  • Pides el 4 del jueves con getDate
  • Decides cuál momento es posterior con ===
  • Llamas a new Date() sin números, y cada recarga trae otra mañana

Lo que tiene que quedarte

  • Marzo es 2 porque enero es 0
  • El día del mes es getDate
  • El día de la semana es getDay, y el domingo es 0
  • Dos momentos se ordenan con el número de getTime
  • La frase que lee una persona escribe el mes un paso por delante de lo guardado, y el objeto se queda en 2
  • Después viene el objeto Math

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
8
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior