Carbon pour PHP : guide complet avec 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

Qu'est-ce que Carbon et pourquoi en a-t-on besoin ?

\n\n

Carbon est une bibliothèque puissante et élégante pour PHP qui étend la classe native DateTime. Si vous avez déjà travaillé avec des dates en PHP de manière native, vous savez que les classes standard DateTime et DateTimeImmutable offrent des fonctionnalités de base, mais leur API est souvent lourde et peu intuitive. Carbon résout ce problème en proposant une syntaxe propre, lisible et expressive pour travailler avec les dates et les heures.

\n\n

Pourquoi utiliser Carbon ? Imaginez que vous ayez besoin de :

\n
    \n
  • Ajouter 3 jours à la date actuelle : $date->add(new DateInterval('P3D')) (PHP natif) vs $date->addDays(3) (Carbon).
  • \n
  • Obtenir la différence en jours entre deux dates : le lourd DateTime::diff() suivi d'un formatage vs $date1->diffInDays($date2).
  • \n
  • Vérifier si une date est un jour de week-end : écrire votre propre logique vs $date->isWeekend().
  • \n
\n\n

Carbon rend le code non seulement plus court, mais aussi beaucoup plus compréhensible. Il est largement utilisé dans les frameworks PHP modernes, tels que Laravel (où il est la norme), Symfony, Yii et d'autres. La bibliothèque est entièrement compatible avec le DateTime natif, ce qui signifie que vous pouvez utiliser Carbon partout où un DateTime est attendu.

\n\n

Les principaux avantages de Carbon :

\n
    \n
  • Syntaxe expressive : les méthodes sont nommées de manière à ce que leur objectif soit clair sans commentaires (startOfDay(), endOfMonth(), isFuture()).
  • \n
  • Immuabilité : prise en charge de CarbonImmutable pour un travail sécurisé avec les dates sans effets secondaires.
  • \n
  • Localisation : prise en charge intégrée du formatage des dates dans différentes langues.
  • \n
  • API riche : des centaines de méthodes pour la manipulation, la comparaison, le formatage et le calcul des dates.
  • \n
  • Comparaison intuitive : méthodes comme isBefore(), isAfter(), isSameDay().
  • \n
\n\n

Installation de Carbon

\n\n

Carbon s'installe via Composer — le gestionnaire de paquets standard pour PHP. Si vous n'avez pas encore Composer, vous devez l'installer (voir getcomposer.org).

\n\n

Ouvrez un terminal à la racine de votre projet et exécutez la commande :

\n\n
composer require nesbot/carbon
\n\n

Après une installation réussie, un dossier vendor/ et un fichier composer.json avec la dépendance ajoutée apparaîtront dans votre projet. Pour utiliser Carbon dans votre code, vous devez inclure l'autoloader de Composer :

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\n// Vous pouvez maintenant utiliser Carbon\necho Carbon::now(); // 2025-04-03 15:30:00\n?>
\n\n

Important : Carbon nécessite PHP version 8.0 ou supérieure (pour les dernières versions). Il est recommandé d'utiliser PHP 8.1+.

\n\n

Démarrage rapide avec un exemple de code

\n\n

Passons directement à la pratique. Voici quelques exemples simples qui démontrent la puissance de Carbon :

\n\n
<?php\nrequire_once 'vendor/autoload.php';\nuse Carbon\\Carbon;\n\n// Date et heure actuelles\n$now = Carbon::now();\necho "Maintenant : " . $now . "\\n"; // 2025-04-03 15:30:00\n\n// Création d'une date à partir d'une chaîne\n$birthday = Carbon::createFromDate(1990, 5, 15);\necho "Anniversaire : " . $birthday->format('d.m.Y') . "\\n"; // 15.05.1990\n\n// Manipulations de dates\n$tomorrow = Carbon::tomorrow();\necho "Demain : " . $tomorrow . "\\n";\n\n$nextWeek = Carbon::now()->addWeek();\necho "Dans une semaine : " . $nextWeek . "\\n";\n\n// Différence entre dates\n$age = $birthday->diffInYears(Carbon::now());\necho "Âge : $age ans\\n"; // 34 ou 35\n\n// Vérification de conditions\n$date = Carbon::parse('2025-12-25');\nif ($date->isChristmas()) {\n    echo "C'est Noël !\\n";\n}\n\n//                    

Recommendations