Zum Inhalt springen

date_sub()

DateTime::sub() in PHP

Die Klassen DateTime und DateInterval in PHP bieten einen robusten, objektorientierten Ansatz für Datumsberechnungen und ersetzen die veraltete Funktion date_sub() (in PHP 8.0 entfernt). Die Methode DateTime::sub() ermöglicht es Ihnen, Zeitintervalle genau und vorhersagbar abzuziehen.

Erweiterte Datumsberechnungen in PHP

Schritt 1: Grundlagen der Datumsberechnungen in PHP verstehen

Die Methode DateTime::sub() modifiziert ein DateTime-Objekt direkt und gibt die aktualisierte Instanz zurück. Zur Verwendung benötigen Sie ein DateTime-Objekt und ein DateInterval-Objekt, das das abzuziehende Zeitintervall definiert.

Die Methodensignatur lautet DateTime::sub(DateInterval $interval): DateTime. Sie modifiziert das DateTime-Objekt direkt und gibt die aktualisierte Instanz zurück.

php
$date = new DateTime('2023-10-15', new DateTimeZone('UTC'));
$interval = new DateInterval('P5D'); // 5 days
$date->sub($interval);
echo $date->format('Y-m-d'); // Outputs: 2023-10-10

Schritt 2: Hinzufügen benutzerdefinierter Parameter zu Datumsberechnungen

Sie können das DateInterval anpassen, um Jahre, Monate, Wochen, Stunden, Minuten oder Sekunden abzuziehen. Das ISO-8601-Dauerformat (P[n]Y[n]M[n]DT[n]H[n]M[n]S) wird zur Definition dieser Intervalle verwendet.

php
$date = new DateTime('2023-10-15 12:00:00');
$interval = new DateInterval('P2M1DT3H'); // 2 months, 1 day, 3 hours
$date->sub($interval);
echo $date->format('Y-m-d H:i:s'); // Outputs: 2023-08-14 09:00:00

Hinweis: DateInterval validiert den Dauertext streng. Das Übergeben eines ungültigen Formats löst eine Exception aus. Verpacken Sie die Intervallerstellung immer in einen try...catch-Block, wenn die Eingabe dynamisch ist.

Schritt 3: Nutzung externer Bibliotheken für komplexere Datumsberechnungen

Für fortgeschrittene Szenarien wie die Handhabung von Zeitzonen, Kalenderbesonderheiten oder komplexe Geschäftslogik bieten Bibliotheken wie Carbon zusätzliche fluente Methoden. Für die meisten Standardanwendungsfälle sind PHPs native Klassen DateTime und DateInterval jedoch ausreichend und empfohlen.

php
// Example using Carbon (external library)
use Carbon\Carbon;

$date = Carbon::parse('2023-10-15');
$newDate = $date->subMonths(2)->subDays(5);
echo $newDate->toDateString(); // Outputs: 2023-08-10

Fazit

Durch Befolgung dieser Schritte können Sie genaue Datumsberechnungen in PHP unter Verwendung moderner objektorientierter Praktiken durchführen.

Praxis

Was macht die PHP-Funktion DateSub()?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.