Travailler avec les dates et l'heure en JavaScript : guide complet pour Node.js

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course
```html

Travailler avec les dates et l'heure en JavaScript (Node.js) : des bases aux techniques avancées



Travailler avec les dates et l'heure est l'une des tâches les plus courantes en développement web. Qu'il s'agisse de journalisation d'événements, de traitement de données utilisateur, de planification de tâches ou d'affichage d'horodatages, savoir gérer les dates en JavaScript est indispensable. Dans cet article, nous allons aborder tous les aspects clés du travail avec les dates dans l'environnement Node.js : de la création et du formatage aux manipulations complexes avec les fuseaux horaires et à l'utilisation de bibliothèques populaires.



Les bases : l'objet Date en JavaScript



L'objet natif Date est le fondement du travail avec les dates. Il stocke le nombre de millisecondes écoulées depuis le 1er janvier 1970 (l'époque Unix).



Création d'une date



Il existe plusieurs façons de créer une instance de Date :



// Date et heure actuellesconst now = new Date();console.log(now); // 2025-03-15T10:30:00.000Z

// À partir de millisecondes (timestamp Unix)const fromTimestamp = new Date(1742025000000);console.log(fromTimestamp); // 2025-03-15T10:30:00.000Z

// À partir d'une chaîne (ISO 8601)const fromString = new Date('2025-03-15T10:30:00');console.log(fromString);

// À partir de composants (année, mois, jour, heure, minute, seconde, milliseconde)const fromComponents = new Date(2025, 2, 15, 10, 30, 0, 0); // Mois : 0-11console.log(fromComponents); // March 15, 2025 10:30:00


Important : les mois en JavaScript sont indexés à partir de 0 (janvier = 0, décembre = 11).



Obtention des composants d'une date



Méthodes pour extraire les parties individuelles d'une date :



const date = new Date('2025-03-15T10:30:45.123Z');

console.log(date.getFullYear()); // 2025console.log(date.getMonth()); // 2 (mars)console.log(date.getDate()); // 15console.log(date.getDay()); // 6 (samedi, 0 - dimanche)console.log(date.getHours()); // 10console.log(date.getMinutes()); // 30console.log(date.getSeconds()); // 45console.log(date.getMilliseconds());// 123console.log(date.getTime()); // millisecondes depuis l'époque


Formatage des dates dans Node.js



L'objet Date standard offre des capacités de formatage limitées. Pour un affichage lisible, utilisez toLocaleDateString() et toLocaleString().



const date = new Date('2025-03-15T10:30:00');

// Formatage localiséconsole.log(date.toLocaleDateString('fr-FR')); // 15/03/2025console.log(date.toLocaleTimeString('fr-FR')); // 10:30:00console.log(date.toLocaleString('fr-FR')); // 15/03/2025, 10:30:00

// Avec optionsconst options = { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long', hour: '2-digit', minute: '2-digit'};console.log(date.toLocaleString('fr-FR', options)); // samedi 15 mars 2025, 10:30


Formatage personnalisé



Pour un contrôle total, écrivez une fonction simple :



function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {  const map = {    YYYY: date.getFullYear(),    MM: String(date.getMonth() + 1).padStart(2, '0'),    DD: String(date.getDate()).padStart(2, '0'),    HH: String(date.getHours()).padStart(2, '0'),    mm: String(date.getMinutes()).padStart(2, '0'),    ss: String(date.getSeconds()).padStart(2, '0'),  };  return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => map[match]);}

console.log(formatDate(new Date(), 'DD.MM.YYYY')); // 15.03.2025console.log(formatDate(new Date(), 'HH:mm:ss')); // 10:30:00


Manipulations des dates : ajout, soustraction, comparaison



Vous pouvez modifier les dates directement via les méthodes set* ou en travaillant avec les millisecondes.



Ajout et soustraction de temps



const date = new Date('2025-03-15T10:30:00');

// Ajouter 5 joursdate.setDate(date.getDate() + 5);console.log(date); // 2025-03-20T10:30:00

// Ajouter ```

Blogs

Book Recommendations