Arbeiten mit Datumsangaben in PHP: Überblick über Bibliotheken und Werkzeuge

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 Datumsangaben in PHP: Die besten Bibliotheken und Werkzeuge

Die Verarbeitung von Datums- und Zeitangaben gehört zu den häufigsten Aufgaben in der Webentwicklung. PHP bietet einen leistungsstarken integrierten Werkzeugkasten, aber für komplexe Projekte werden oft komfortablere Bibliotheken benötigt. In diesem Artikel betrachten wir die grundlegenden Methoden zur Arbeit mit Datumsangaben in PHP, vergleichen beliebte Bibliotheken und zeigen praktische Beispiele.



Integrierte PHP-Klassen: DateTime und DateTimeImmutable

Seit Version 5.2 enthält PHP objektorientierte Klassen für die Arbeit mit Datumsangaben. Die wichtigsten sind:

  • DateTime — veränderbares Datums-/Zeitobjekt
  • DateTimeImmutable — unveränderliches Gegenstück (sicherer bei Übergabe als Referenz)
  • DateInterval — Darstellung eines Zeitintervalls
  • DatePeriod — Iteration über Datumsangaben mit einem bestimmten Intervall


Beispiel für die Erstellung und Formatierung eines Datums:

<?php$date = new DateTime('2024-12-25 10:30:00');echo $date->format('Y-m-d H:i:s'); // 2024-12-25 10:30:00

// Hinzufügen von 1 Woche$date->modify('+1 week');echo $date->format('Y-m-d'); // 2025-01-01?>


Carbon — De-facto-Standard für Laravel

Carbon ist eine Erweiterung der DateTime-Klasse, die Dutzende praktischer Methoden hinzufügt. Die Bibliothek wird aktiv in Laravel und Symfony verwendet. Installation über Composer:

composer require nesbot/carbon


Hauptfunktionen von Carbon:

  • Menschenlesbare Modifikatoren: ->addDay(), ->subMonth(), ->startOfWeek()
  • Lokalisierung: Carbon::setLocale('de')
  • Relative Datumsangaben: ->diffForHumans() (gibt "vor 3 Stunden", "in 2 Tagen" zurück)
  • Parsing natürlicher Sprache: Carbon::parse('next monday')


Beispiel für die Verwendung von Carbon:

<?phpuse Carbon\\Carbon;

$now = Carbon::now('Europe/Berlin');echo $now->toDateString(); // 2025-03-15

$birthday = Carbon::create(1990, 5, 20);echo $birthday->age; // 34

// Differenz zwischen Datumsangaben$start = Carbon::parse('2024-01-01');$end = Carbon::parse('2024-12-31');echo $start->diffInDays($end); // 365

// Relatives Datumecho Carbon::parse('-1 week')->diffForHumans(); // "vor 1 Woche"?>


Chronos — Alternative von CakePHP

Chronos ist eine unabhängige Bibliothek, die von den Entwicklern von CakePHP erstellt wurde. Ihr Hauptunterschied ist die standardmäßige Unveränderlichkeit (wie DateTimeImmutable). Besonderheiten:

  • Alle Objekte sind unveränderlich — sicherer für Multithread-Umgebungen
  • Unterstützung von Zeitzonen unter Berücksichtigung der Sommerzeit
  • Praktische Rundungsmethoden: ->startOfDay(), ->endOfMonth()
  • Geringes Gewicht (keine Abhängigkeiten)


Beispiel für die Arbeit mit Chronos:

<?phpuse Cake\\Chronos\\Chronos;

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

// Differenz mit Angabe der Genauigkeit$future = Chronos::create(2025, 12, 31);echo $date->diffInDays($future); // 291

// Datumsprüfungecho $date->isWeekend() ? 'Wochenende' : 'Werktag';?>


CakePHP Time — für die Arbeit mit Zeitzonen

Ein weiteres Werkzeug von CakePHP — Cake\\I18n\\Time. Es erweitert Chronos und fügt Unterstützung für Internationalisierung hinzu. Nützlich, wenn Datumsangaben in verschiedenen Sprachen ausgegeben werden sollen:

<?phpuse Cake\\I18n\\Time;

Time::setDefaultLocale('de_DE');$time = Time::parse('2025-03-15 14:30:00', 'Europe/Berlin');echo $time->i18nFormat('dd MMMM yyyy'); // 15. März 2025?>


Vergleich der Bibliotheken

Um die passende Bibliothek auszuwählen, beachten Sie die folgenden Kriterien:

  • Carbon — die beste Wahl für Laravel-P

Empfehlungen