Travailler avec les dates en TypeScript : bibliothèques populaires et exemples

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 en TypeScript : aperçu des bibliothèques



Travailler avec les dates est l'une des tâches les plus courantes en développement web. En TypeScript (et JavaScript), l'objet natif Date a des capacités limitées et une API peu pratique. Heureusement, il existe de nombreuses bibliothèques qui simplifient le formatage, l'analyse, la comparaison et la manipulation des dates. Dans cet article, nous examinerons quatre bibliothèques populaires : date-fns, Day.js, Luxon et Moment.js, et montrerons des exemples de leur utilisation en TypeScript.



1. date-fns — modulaire et légère



date-fns est une bibliothèque moderne construite sur le principe de modularité. Vous importez uniquement les fonctions dont vous avez besoin, ce qui permet de garder la taille du bundle minimale. date-fns prend parfaitement en charge TypeScript dès le départ.



Installation :

npm install date-fns# ouyarn add date-fns


Exemples d'utilisation :

import { format, addDays, differenceInDays, parseISO } from 'date-fns';

// Formatageconst today = new Date();console.log(format(today, 'yyyy-MM-dd')); // 2025-03-15

// Ajout de joursconst future = addDays(today, 10);console.log(format(future, 'dd.MM.yyyy')); // 25.03.2025

// Différence entre datesconst start = parseISO('2025-01-01');const end = parseISO('2025-03-15');console.log(differenceInDays(end, start)); // 73

// Vérification du week-endimport { isWeekend } from 'date-fns';console.log(isWeekend(new Date(2025, 2, 15))); // true (samedi)


2. Day.js — une alternative légère à Moment.js



Day.js est une bibliothèque minimaliste (seulement 2 Ko) avec une API très similaire à Moment.js. Elle est idéale si vous souhaitez migrer depuis Moment tout en réduisant la taille du bundle. Day.js prend en charge TypeScript via les types.



Installation :

npm install dayjs# ouyarn add dayjs


Exemples d'utilisation :

import dayjs from 'dayjs';import relativeTime from 'dayjs/plugin/relativeTime';import utc from 'dayjs/plugin/utc';

dayjs.extend(relativeTime);dayjs.extend(utc);

// Création et formatageconst now = dayjs();console.log(now.format('DD/MM/YYYY HH:mm')); // 15/03/2025 14:30

// Temps relatifconsole.log(dayjs('2025-03-10').fromNow()); // il y a 5 jours

// Travail avec UTCconst utcDate = dayjs.utc('2025-03-15T12:00:00Z');console.log(utcDate.local().format('HH:mm')); // heure locale

// Manipulationsconst nextMonth = dayjs().add(1, 'month');console.log(nextMonth.format('MMMM YYYY')); // avril 2025


3. Luxon — puissant et moderne



Luxon est le successeur de Moment.js, développé par la même équipe. Il utilise l'objet natif DateTime, prend en charge les fuseaux horaires, les intervalles et les durées. Luxon est écrit en TypeScript et possède une excellente typage.



Installation :

npm install luxon# ouyarn add luxon


Exemples d'utilisation :

import { DateTime, Interval, Duration } from 'luxon';

// Création et formatageconst dt = DateTime.now();console.log(dt.toFormat('yyyy LLL dd')); // 2025 mar. 15

// Fuseaux horairesconst ny = DateTime.now().setZone('America/New_York');console.log(ny.toLocaleString(DateTime.DATETIME_FULL)); // 15 mars 2025 à 09:30 EDT

// Intervallesconst start = DateTime.fromISO('2025-01-01');const end = DateTime.fromISO('2025-03-15');const interval = Interval.fromDateTimes(start, end);console.log(interval.length('days')); // 73

// Duréesconst dur = Duration.fromObject({ hours: 5, minutes: 30 });console.log(dur.toHuman()); // 5 heures, 30 minutes

// Analyse

Recommendations