Chargement...

Dates en JavaScript

Deux mots se ressemblent et ne disent pas la même chose : le quantième et le jour de la semaine. Pour les séparer sans changer d’exemple à chaque ligne, on garde un seul matin. La salle de lecture ouvre le jeudi 14 mars 2024 à 9 h 30. Ce matin-là ne doit pas glisser vers « maintenant » si tu recharges la page.

Tu ne cherches plus dans un tableau

Là, une recherche te rendait une case, −1, oui ou non, ou le timbre lui-même. Une date ne se trouve pas de cette façon. Tu poses l’instant, puis tu lui poses une question à la fois. La question ne fait pas avancer l’horloge.

Les jumeaux de ce jeudi

Lis le tableau comme des paires qu’on échange trop souvent en classe, sur ce jeudi-là seulement.

📊 Les paires de ce jeudi

Méthode La question réelle Le chiffre de ce matin Le jumeau avec lequel on le confond
getFullYear l’année en entier 2024 l’année sur deux chiffres
getMonth la place de mars dans l’objet 2 le 3 du calendrier mural
getDate le quantième 14 le jeudi
getDay la place du jeudi dans la semaine 4 le 14
getHours l’heure de 0 à 23 9 une étiquette « matin »
getMinutes la minute 30 demander 30 à l’heure

Janvier part à 0, donc février est 1 et mars est 2. Dimanche part à 0, donc lundi 1, mardi 2, mercredi 3, jeudi 4. Le zéro du tableau était une case. Ici, le zéro ouvre l’année ou la semaine.

L’année d’abord, le mois attend

Rien que la tête du constructeur. 2024 y est entré entier, et cette ligne le garde entier.

L’année du jeudi

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

Tu obtiens 2024, celui que tu as mis en premier. Le 2 du mois ne s’imprime pas sur cette ligne, et pourtant il veut déjà dire mars. 24 est un raccourci d’écriture, pas cette lecture.

Mars, là où l’objet le range

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

Le 2 n’est pas un trou. Janvier a pris le 0, mars tombe donc ici. Le cran vers « troisième mois » se fera plus loin, dans la phrase affichée. Pour l’instant tu laisses ce 2 tranquille.

Le 14 et le jeudi

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

14 est le quantième, 4 est jeudi si dimanche vaut 0. Ils se suivent parce que tu as posé les deux questions. Ce n’est pas la même question dite deux fois. Croiser les méthodes, c’est prendre une date pour un nom de jour, ou l’inverse.

Neuf heures trente

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

9 d’abord, 30 ensuite. Les heures partent de 0 à minuit et montent jusqu’à 23, donc ce 9 est le matin sans drapeau à part. Le 30 est la minute. Le demander à l’heure, c’est interroger la mauvaise aiguille.

La visite du 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 visite tombe le 20 mars à 15 h, donc après l’ouverture. getTime transforme chaque instant en un nombre qu’on peut ranger du plus ancien au plus récent, et la comparaison vaut true. La ligne d’après est 20, le jour de cette visite. === ne parle pas d’ordre dans le temps. Il demande seulement si les deux noms désignent un seul objet. Ici tu en as construit deux.

La phrase pour qui ne lit pas le code

L’année et le jour restent tels quels. Le mois, tu l’écris comme sur le calendrier mural.

Phrase pour le lecteur

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>

Le paragraphe affiche 2024-3-14. Si tu redemandes le mois à l’objet, il est encore à 2. Le décalage est dans la phrase montrée à l’œil. L’instant gardé n’a pas bougé.

Six points où ce jeudi doit coller

Tu vérifies l’image, tu ne devines pas.

  1. L’année entière est 2024, pas 24
  2. Dans l’objet, mars est 2
  3. Le 14 vient de getDate, le 4 du jeudi vient de getDay
  4. L’heure est 9, la minute est 30
  5. La visite du 20 est plus tardive, la comparaison vaut true, et ce jour-là est 20
  6. La phrase du paragraphe est 2024-3-14, et l’objet garde le mois à 2

Ça s’exécute, et le jour est faux

Aucune alerte. Seulement un mois ou un chiffre qui n’est pas celui que tu croyais.

  • Tu passes 3 à new Date en visant mars, et tu obtiens avril
  • Tu lis 2 comme février, ou tu exiges 3 de getMonth
  • Tu vas chercher 14 avec getDay
  • Tu vas chercher le 4 du jeudi avec getDate
  • Tu décides quel instant est plus tard avec ===
  • Tu appelles new Date() sans nombres, et chaque rechargement pose un autre matin

Ce qui doit rester quand tu fermes la page

  • Mars est 2 parce que janvier est 0
  • Le quantième, c’est getDate
  • Le jour de la semaine, c’est getDay, et dimanche vaut 0
  • Deux instants se rangent avec le nombre de getTime
  • La phrase lue par quelqu’un écrit le mois un cran plus loin que l’objet, et l’objet reste à 2
  • Ensuite vient l’objet Math

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
8
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut