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

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 dans le développement backend. Qu'il s'agisse de journalisation d'événements, de calcul d'échéances, de génération de rapports ou d'interaction avec des API, savoir gérer correctement les horodatages est une compétence cruciale. Dans cet article, nous allons aborder tous les aspects clés du travail avec les dates dans l'environnement Node.js : de l'objet natif Date aux bibliothèques populaires qui simplifient la vie du développeur.



1. L'objet natif Date : bases et pièges à éviter



En JavaScript, l'objet natif Date est responsable de la gestion des dates. Il fournit des méthodes de base pour créer, lire et manipuler les dates. Cependant, il présente un certain nombre de particularités qu'il est important de connaître.



Création d'un objet Date

La façon la plus simple d'obtenir la date et l'heure actuelles :

const now = new Date();console.log(now); // 2025-03-20T14:30:00.000Z (exemple)


On peut créer une date à partir d'une chaîne de caractères, d'un timestamp (millisecondes depuis le 1er janvier 1970) ou en spécifiant les composants manuellement :

// À partir d'une chaîne (ISO 8601)const dateFromString = new Date("2025-12-25T10:00:00Z");

// À partir d'un timestampconst dateFromTimestamp = new Date(1735048800000);

// À partir de composants (année, mois (0-11), jour, heure, minute, seconde, milliseconde)const dateFromParts = new Date(2025, 11, 25, 10, 0, 0, 0); // 25 décembre 2025 10:00:00console.log(dateFromParts); // 2025-12-25T07:00:00.000Z (dépend du fuseau horaire)


Important : Les mois en JavaScript sont indexés à partir de 0 (janvier = 0, décembre = 11). C'est une source fréquente d'erreurs.



Obtention des composants d'une date

L'objet Date fournit des méthodes pour obtenir les composants individuels :

const date = new Date();console.log(date.getFullYear());    // 2025console.log(date.getMonth());       // 2 (mars, car l'indexation commence à 0)console.log(date.getDate());        // 20console.log(date.getDay());         // 4 (jeudi, 0 = dimanche)console.log(date.getHours());       // 17console.log(date.getMinutes());     // 45console.log(date.getSeconds());     // 12console.log(date.getMilliseconds());// 345console.log(date.getTime());        // 1742474712345 (timestamp)


Notez que toutes ces méthodes retournent des valeurs dans le fuseau horaire local du serveur. Pour travailler avec UTC, utilisez les méthodes avec le préfixe getUTC... (par exemple, getUTCFullYear()).



Manipulation des dates

La modification d'une date se fait via les méthodes set. Elles modifient l'objet d'origine :

const date = new Date();date.setFullYear(2026);date.setMonth(0); // janvierdate.setDate(15);console.log(date); // 2026-01-15T... (les autres composants sont conservés)


Piège à éviter : Les méthodes set ajustent automatiquement la date. Par exemple, si vous définissez le 32 janvier, la date deviendra le 1er février. Cela peut être à la fois pratique et inattendu.



2. Formatage des dates et affichage dans le format souhaité



La méthode native toLocaleDateString() permet d'afficher une date dans le format propre à une locale spécifique :

const date = new Date(2025, 11, 25);console.log(date.toLocaleDateString('ru-RU')); // 25.12.2025console.log(date.toLocaleDateString('en-US')); // 12/25/2025console.log(date.toLocaleDateString('de-DE')); // 25.12.2025


Pour un formatage plus flexible, on peut utiliser Intl.DateTimeFormat :

const formatter = new Intl.DateTimeFormat('fr-FR', {  year: 'numeric',  month: 'long',  day: 'numeric',  weekday: 'long',  hour: '2-digit',  minute: '2-digit'});console.log(formatter.format(new Date())); // "jeudi 20 mars 2025, 17:45"


Cependant, pour des formats complexes (par exemple, "2025-03-20T14:30:00+03:00") ou des modèles personnalisés, il est préférable d'utiliser des bibliothèques (nous y reviendrons).



Blogs

Book Recommendations