Carbon für PHP: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Carbon und warum wird es benötigt?

\n\n

Carbon ist eine leistungsstarke und elegante Bibliothek für PHP, die die eingebaute Klasse DateTime erweitert. Wenn Sie jemals nativ mit Daten in PHP gearbeitet haben, wissen Sie, dass die standardmäßigen DateTime und DateTimeImmutable grundlegende Funktionen bieten, ihre API jedoch oft umständlich und unintuitiv ist. Carbon löst dieses Problem, indem es eine saubere, lesbare und ausdrucksstarke Syntax für die Arbeit mit Datum und Uhrzeit bietet.

\n\n

Warum Carbon verwenden? Stellen Sie sich vor, Sie müssen:

\n
    \n
  • 3 Tage zum aktuellen Datum hinzufügen: $date->add(new DateInterval('P3D')) (natives PHP) vs $date->addDays(3) (Carbon).
  • \n
  • Die Differenz in Tagen zwischen zwei Daten ermitteln: umständliches DateTime::diff() mit anschließender Formatierung vs $date1->diffInDays($date2).
  • \n
  • Prüfen, ob ein Datum ein Wochenendtag ist: eigene Logik schreiben vs $date->isWeekend().
  • \n
\n\n

Carbon macht den Code nicht nur kürzer, sondern auch deutlich verständlicher. Es wird häufig in modernen PHP-Frameworks wie Laravel (wo es der Standard ist), Symfony, Yii und anderen verwendet. Die Bibliothek ist vollständig kompatibel mit nativem DateTime, was bedeutet, dass Sie Carbon überall dort verwenden können, wo DateTime erwartet wird.

\n\n

Die wichtigsten Vorteile von Carbon:

\n
    \n
  • Ausdrucksstarke Syntax: Methoden sind so benannt, dass ihr Zweck ohne Kommentare verständlich ist (startOfDay(), endOfMonth(), isFuture()).
  • \n
  • Unveränderlichkeit (Immutable): Unterstützung für CarbonImmutable für sicheres Arbeiten mit Daten ohne Nebeneffekte.
  • \n
  • Lokalisierung: integrierte Unterstützung für die Formatierung von Daten in verschiedenen Sprachen.
  • \n
  • Reichhaltige API: Hunderte von Methoden zur Manipulation, zum Vergleich, zur Formatierung und Berechnung von Daten.
  • \n
  • Intuitiver Vergleich: Methoden wie isBefore(), isAfter(), isSameDay().
  • \n
\n\n

Installation von Carbon

\n\n

Carbon wird über Composer installiert – den Standard-Paketmanager für PHP. Wenn Sie Composer noch nicht haben, muss es installiert werden (siehe getcomposer.org).

\n\n

Öffnen Sie ein Terminal im Stammverzeichnis Ihres Projekts und führen Sie den folgenden Befehl aus:

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

Nach erfolgreicher Installation erscheint in Ihrem Projekt ein Ordner vendor/ und eine Datei composer.json mit der hinzugefügten Abhängigkeit. Um Carbon in Ihrem Code zu verwenden, müssen Sie den Composer-Autoloader einbinden:

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\n// Jetzt kann Carbon verwendet werden\necho Carbon::now(); // 2025-04-03 15:30:00\n?>
\n\n

Wichtig: Carbon erfordert PHP Version 8.0 oder höher (für die neuesten Versionen). Es wird empfohlen, PHP 8.1+ zu verwenden.

\n\n

Schnellstart mit einem Codebeispiel

\n\n

Kommen wir direkt zur Praxis. Hier sind einige einfache Beispiele, die die Leistungsfähigkeit von Carbon demonstrieren:

\n\n
<?php\nrequire_once 'vendor/autoload.php';\nuse Carbon\\Carbon;\n\n// Aktuelles Datum und Uhrzeit\n$now = Carbon::now();\necho "Jetzt: " . $now . "\\n"; // 2025-04-03 15:30:00\n\n// Datum aus einem String erstellen\n$birthday = Carbon::createFromDate(1990, 5, 15);\necho "Geburtstag: " . $birthday->format('d.m.Y') . "\\n"; // 15.05.1990\n\n// Manipulation von Daten\n$tomorrow = Carbon::tomorrow();\necho "Morgen: " . $tomorrow . "\\n";\n\n$nextWeek = Carbon::now()->addWeek();\necho "In einer Woche: " . $nextWeek . "\\n";\n\n// Differenz zwischen Daten\n$age = $birthday->diffInYears(Carbon::now());\necho "Alter: $age Jahre\\n"; // 34 oder 35\n\n// Bedingungen prüfen\n$date = Carbon::parse('2025-12-25');\nif ($date->isChristmas()) {\n    echo "Es ist Weihnachten!\\n";\n}\n\n//                    

Empfehlungen