MWCodebymw.de ↗
PHP

Mit Datum rechnen in PHP – DateTimeImmutable

„In 14 Tagen" oder „wie viele Tage bis zur Frist?" – mit DateTimeImmutable rechnest du sicher mit Datum und Zeit, ohne dass sich ein Objekt heimlich unter der Hand ändert.

Datum als Unix-Timestamp mit + 606024*14 zu addieren, geht bei Sommerzeit und Monatsgrenzen schief. PHP bringt mit DateTimeImmutable eine saubere Datums-Arithmetik – und das „Immutable" verhindert eine häufige Fehlerquelle.

Rechnen mit Intervallen

modify() und add() geben ein neues Objekt zurück; das Original bleibt unverändert:

$heute = new DateTimeImmutable('today');

$frist = $heute->modify('+14 days');
$naechsterMonat = $heute->modify('first day of next month');

echo $frist->format('d.m.Y');           // z. B. 31.07.2026

Warum „Immutable"?

Das klassische DateTime verändert sich selbst bei modify() – ein subtiler Bug, wenn du dasselbe Objekt mehrfach nutzt:

$d = new DateTime('2026-07-17');
$in7 = $d->modify('+7 days');           // ändert AUCH $d!
// $d ist jetzt ebenfalls der 24.07. – überraschend

$i = new DateTimeImmutable('2026-07-17');
$in7 = $i->modify('+7 days');           // $i bleibt der 17.07.

Nimm im Zweifel immer DateTimeImmutable.

Differenz zwischen zwei Daten

diff() liefert ein DateInterval mit fertig aufgeschlüsselten Tagen:

$start = new DateTimeImmutable('2026-07-17');
$ende  = new DateTimeImmutable('2026-08-01');

$diff = $start->diff($ende);
echo $diff->days;                       // 15 (Gesamttage)
echo $diff->format('%a Tage');          // "15 Tage"

Ein Tipp für die Praxis: Rechne intern in UTC und formatiere erst bei der Ausgabe in die lokale Zeitzone (setTimezone(new DateTimeZone('Europe/Berlin'))). Dann bleiben dir Sommerzeit-Verschiebungen erspart.

Korrekte Datums- und Fristenlogik steckt in jedem Buchungs- oder Rechnungssystem. Solche Backends baue ich – schau auf bymw.de.

Quellen

#DateTime#Datum#DateInterval#Zeit#PHP

Du brauchst mehr als ein Snippet?

Ich entwickle Android-Apps in Kotlin und moderne Websites für Selbstständige und kleine Unternehmen — von der ersten Idee bis zum Release.

Projekt anfragen →