5.13 Date
Le dernier objet intégré que nous examinons dans cette section est l'objet Date. Voyons les différentes façons de le créer. Date est une fonction constructeur qui possède plusieurs surcharges. La première forme consiste à l'appeler sans aucun paramètre : on obtient alors la date et l'heure actuelles.
const today = new Date();
Les différents constructeurs disponibles
Une deuxième forme accepte un seul paramètre : soit une chaîne représentant une date, soit un nombre de millisecondes écoulées depuis le 1er janvier 1970, soit un autre objet Date. Pour la version avec chaîne, plusieurs formats sont supportés — la documentation MDN les liste tous sous la rubrique « Date Time String Format ».
La troisième forme accepte les composants individuels comme nombres : année, mois, jour, heures, minutes, etc. Attention au piège classique : le mois est indexé à partir de zéro. Ainsi 0 correspond à janvier et 11 à décembre. Pour le mois de mai, on passera donc la valeur 4.
const date2 = new Date('May 15, 2022 09:00');
const date3 = new Date(2022, 4, 15, 9, 0);
Les paramètres au-delà de l'année et du mois sont optionnels et initialisés à 0 par défaut.
Méthodes get, set et conversion en chaîne
Tous les objets Date exposent une famille de méthodes get* et set* pour lire ou modifier leurs composants : getDate, getFullYear, getHours, getMinutes, getMilliseconds, et leurs équivalents setDate, setFullYear, etc.
today.setFullYear(2021);
console.log(today.getDate());
Pour afficher ou échanger une date, plusieurs méthodes de conversion existent. toDateString() retourne une chaîne lisible comme « Thu Mar 18 2021 ». toTimeString() renvoie uniquement la partie heure. La plus importante est toISOString() qui produit une chaîne au format ISO standard (date suivie de T puis de l'heure). C'est le format que vous utiliserez couramment dans vos applications web et mobiles pour transférer des dates entre le client et le serveur backend.
En résumé
Cette leçon présente l'objet Date intégré de JavaScript, un outil essentiel pour manipuler les dates et heures. Elle couvre les trois principales façons de créer un objet Date (sans paramètre pour la date actuelle, avec une chaîne de caractères, ou avec des nombres pour année/mois/jour), puis détaille les méthodes getter/setter (getDate, setFullYear, etc.) et les méthodes de conversion en chaîne (toString, toTimeString, toISOString) pour afficher et transférer les dates.
Points clés
- L'objet Date se crée avec le constructeur 'new Date()' sans paramètre pour obtenir la date/heure actuelle, ou avec des paramètres (chaîne, millisecondes depuis 1970, ou nombres année/mois/jour).
- Attention : les mois sont basés sur 0 (janvier = 0, décembre = 11), tandis que les jours du mois commencent à 1.
- Les méthodes get (getDate, getFullYear, getHours, etc.) et set (setFullYear, setHours, etc.) permettent de lire et modifier les composants d'une date.
- toString() retourne la date formatée en langue locale complète, tandis que toTimeString() retourne seulement la partie heure.
- toISOString() génère un format ISO 8601 (YYYY-MM-DDTHH:mm:ss.sssZ), standard couramment utilisé pour communiquer les dates entre client et serveur.
Questions fréquentes
Pourquoi le mois dans l'objet Date est-il basé sur 0 ?
C'est une convention historique de JavaScript : zéro représente janvier et onze représente décembre. Il faut donc soustraire 1 du mois courant si on le récupère d'une autre source (par exemple, un formulaire).
Quel est le meilleur format pour transférer une date entre le client et un serveur ?
Le format ISO 8601 (fourni par toISOString()) est le standard universel. Il affiche la date au format YYYY-MM-DDTHH:mm:ss.sssZ et est reconnu par tous les serveurs et langages de programmation.
Quelles sont les différentes façons de créer un objet Date en JavaScript ?
Trois méthodes : 'new Date()' sans paramètre pour la date actuelle, 'new Date(chaîne)' avec une chaîne de caractères formatée, ou 'new Date(année, mois, jour, heures, minutes, secondes)' avec des nombres individuels.