Arbeiten mit Daten in PHP: vollständiger Überblick über beliebte Bibliotheken

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

Arbeiten mit Daten in PHP: Bibliotheken und Werkzeuge



Das Arbeiten mit Datum und Zeit gehört zu den häufigsten Aufgaben in der Webentwicklung. PHP bietet die eingebaute Klasse DateTime, deren Funktionalität jedoch oft für komplexe Operationen nicht ausreicht: Berechnung von Zeitdifferenzen, lokalisierte Formatierung, Arbeit mit Zeitzonen. Hier helfen spezialisierte Bibliotheken. In diesem Artikel betrachten wir die besten Werkzeuge für die Arbeit mit Daten in PHP.



1. Die eingebaute Klasse DateTime

Bevor wir zu Drittanbieter-Bibliotheken übergehen, sollten wir uns an die native Lösung erinnern – die Klasse DateTime. Sie ist seit PHP 5.2 verfügbar und bietet grundlegende Funktionen:

  • Erstellung von Datums- und Zeitobjekten
  • Formatierung (über format())
  • Änderung des Datums (über modify())
  • Arbeit mit Zeitzonen (DateTimeZone)
  • Vergleich von Daten

Anwendungsbeispiel:

<?php$date = new DateTime('2024-12-31');$date->modify('+1 day');echo $date->format('Y-m-d'); // 2025-01-01?>

Allerdings hat DateTime Nachteile: fehlende praktische Methoden für die Arbeit mit Intervallen, Schwierigkeiten bei Methodenverkettung und eingeschränkte Unterstützung für menschenlesbare Formate.



2. Carbon – die beliebteste Bibliothek

Carbon ist eine Erweiterung für DateTime, die eine benutzerfreundliche API, Methodenverkettung und viele Hilfsfunktionen hinzufügt. Installation über Composer:

composer require nesbot/carbon

Wichtige Funktionen von Carbon:

  • Menschenlesbare Methoden: now(), yesterday(), tomorrow()
  • Lokalisierung (Unterstützung für die deutsche Sprache)
  • Arbeit mit Intervallen: diffForHumans()
  • Änderung des Datums durch Verkettung: ->addDays(5)->subMonths(2)
  • Vergleich: isWeekend(), isPast(), isFuture()

Beispiel mit deutscher Lokalisierung:

<?phprequire 'vendor/autoload.php';use Carbon\\Carbon;

Carbon::setLocale('de');$date = Carbon::now();echo $date->diffForHumans(); // "gerade eben" oder "vor 3 Stunden"?>

Carbon ist der De-facto-Standard für die Arbeit mit Daten in Laravel und vielen anderen Projekten.



3. Chronos – eine leichte Alternative

Chronos von CakePHP ist eine weitere Erweiterung von DateTime, die jedoch den Fokus auf Leichtigkeit und Leistung legt. Installation:

composer require cakephp/chronos

Unterschiede zu Carbon:

  • Keine Abhängigkeiten (außer PHP)
  • Striktere Typisierung
  • Standardmäßige Unterstützung unveränderlicher (immutable) Objekte
  • Weniger Methoden, aber die wichtigsten sind vorhanden

Beispiel:

<?phpuse Cake\\Chronos\\Chronos;

$date = Chronos::now();$future = $date->addDays(10);echo $future->format('d.m.Y');?>

Chronos eignet sich gut für Projekte, bei denen Code-Reinheit und Leistung wichtig sind, aber kein umfangreiches Ökosystem benötigt wird.



4. CarbonImmutable und DateTimeImmutable

Seit PHP 5.5 gibt es die Klasse DateTimeImmutable, die das ursprüngliche Objekt nicht verändert, sondern ein neues zurückgibt. In Carbon gibt es das Pendant – CarbonImmutable. Dies verhindert versehentliche Mutationen von Daten:

<?phpuse Carbon\\CarbonImmutable;

$date = CarbonImmutable::now();$newDate = $date->addDay();echo $date->format('Y-m-d'); // Original wurde nicht geändert?>

Verwenden Sie immutable-Versionen, wenn Daten zwischen Funktionen übergeben oder im Cache gespeichert werden.



5. League\\Period – Arbeit mit Zeiträumen

Die Bibliothek Period von The League of Extraordinary Packages ist für die Arbeit mit Zeitintervallen und Zeiträumen konzipiert.

Empfehlungen