(ou comment JavaScript joue avec le temps pendant que toi tu le perds) 😄
En JavaScript, il existe des objets qui font peu de bruit…
mais sans eux, ton application devient vite amnésique :
- elle ne sait pas quel jour on est
- elle ne connaît pas l’heure
- elle ne peut pas dire “il y a 2 minutes”
- elle est incapable de faire un compte à rebours
👉 Cet objet mystérieux, c’est Date.
🧠 Pourquoi l’objet Date est-il si important ?
Parce que le temps est partout dans une application moderne :
- Date de création d’un compte
- Dernière connexion
- Expiration d’un token
- Publication “il y a 5 minutes”
- Minuteur, chronomètre, countdown 🎯
Sans Date, JavaScript serait comme :
“Je code, mais je ne sais pas quand” 😅
🎯 Qu’est-ce qu’un objet Date en JavaScript ?
Un objet Date représente un moment précis dans le temps
(date + heure + minutes + secondes + millisecondes).
Techniquement, JavaScript stocke une date comme :
le nombre de millisecondes écoulées depuis
le 1er janvier 1970 à minuit (UTC)
Oui… 1970.
Personne ne sait vraiment pourquoi, mais tout le monde accepte 😄
🛠️ Créer un objet Date (les bases solides)
1️⃣ Date actuelle : ici et maintenant
const maintenant = new Date();
console.log(maintenant);
📌 Ce que fait ce code :
new Date()crée un nouvel objet- Il contient la date et l’heure exactes
- Jusqu’à la milliseconde ⏱️
🧠 À retenir :
Chaque fois que tu appelles
new Date(),
JavaScript regarde sa montre ⌚
2️⃣ Créer une date à partir d’un texte (format ISO)
const naissance = new Date("1998-06-12");
console.log(naissance);
📌 Format recommandé :
YYYY-MM-DD
Pourquoi ?
- clair
- standard
- compris partout
❌ À éviter :
new Date("12/06/1998"); // ambigu selon le pays
JavaScript pourrait répondre :
“12 juin ? ou 6 décembre ? Moi aussi je doute.” 🤷♂️
3️⃣ Créer une date avec paramètres (attention piège !)
const datePerso = new Date(2025, 0, 1);
console.log(datePerso);
📌 Paramètres :
new Date(année, mois, jour, heure, minute, seconde)
⚠️ PIÈGE LÉGENDAIRE :
Les mois commencent à 0
| Mois réel | JavaScript |
|---|---|
| Janvier | 0 |
| Février | 1 |
| Décembre | 11 |
new Date(2025, 11, 25); // 25 décembre 2025 🎄
🧠 Astuce de survie :
Si ton mois est faux, enlève 1 😄
🔍 Lire les informations d’une Date
📅 Année, mois, jour
const d = new Date();
d.getFullYear(); // 2026
d.getMonth(); // 0 - 11
d.getDate(); // 1 - 31
📌 Traduction humaine :
getFullYear()→ “On est en quelle année ?”getMonth()→ “Quel mois (version JS bizarre) ?”getDate()→ “Quel jour du mois ?”
⚠️ Attention :
getDay(); // jour de la semaine (0 = dimanche)
Oui… dimanche = 0 😅
JavaScript a ses propres règles.
⏰ Heure, minutes, secondes
d.getHours(); // heures
d.getMinutes(); // minutes
d.getSeconds(); // secondes
d.getMilliseconds(); // millisecondes
📌 Utilisation typique :
- horloge en temps réel
- logs
- messages “envoyé à 14:32”
✍️ Modifier une date (voyage dans le temps)
const d = new Date();
d.setFullYear(2030);
d.setMonth(6); // juillet
d.setDate(14);
🧠 Ce que fait JavaScript :
“Ok, on modifie la date existante.”
📌 Oui, l’objet Date est mutable
(ce qui peut surprendre).
🔄 Comparer des dates (très pratique)
const debut = new Date("2025-01-01");
const fin = new Date("2025-12-31");
if (debut < fin) {
console.log("Tout est logique 👍");
}
📌 Pourquoi ça marche ?
- JavaScript compare les timestamps
- Plus le nombre est grand, plus la date est récente
⏱️ Les timestamps : le cœur du système
Date.now();
➡️ Nombre de millisecondes depuis 1970.
const start = Date.now();
// code à mesurer
const end = Date.now();
console.log(end - start, "ms");
🎯 Parfait pour :
- mesurer des performances
- timers
- animations
- statistiques
🧪 Exemple pratique : compte à rebours
const now = new Date();
const event = new Date("2026-01-01");
const diff = event - now;
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
console.log(`Encore ${days} jours 🎉`);
📌 Décodage :
1000→ millisecondes60→ secondes60→ minutes24→ heures
JavaScript fait les maths, toi tu fais la fête 😄
❌ Erreurs classiques à éviter
1️⃣ Oublier les mois à 0
new Date(2025, 12, 1); // janvier 2026 ❌
2️⃣ Comparer des dates en string
"2025-2-1" > "2025-10-1" // faux résultat 😱
✔️ Toujours comparer des objets Date.
🧠 Astuces de pro
- Stocke les dates en ISO
- Utilise
Date.now()pour les calculs - Évite les fuseaux horaires sans librairie
- Pour projets sérieux → date-fns ou dayjs
- Ne fais pas confiance à
Datepour tout… mais respecte-le 😄
🏁 Conclusion
Les objets Date en JavaScript sont :
- puissants
- parfois capricieux
- absolument indispensables
Bien les comprendre, c’est :
écrire du code plus intelligent
plus fiable
et moins stressant 😎
