Класс DateTimeImmutable
Die Klasse DateTimeImmutable ist das unveränderliche Gegenstück zu DateTime. Sie erzeugt bei jeder Änderung ein neues Objekt, was sie vorhersehbarer und sicherer in der Anwendung macht.
Aktueller Zeitpunkt
Erstellen wir ein DateTimeImmutable-Objekt
mit dem aktuellen Datum und der aktuellen Uhrzeit:
<?php
$date = new DateTimeImmutable();
?>
Bestimmtes Datum
Erstellen wir ein DateTimeImmutable-Objekt mit einem bestimmten Datum:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Bestimmtes Datum und Uhrzeit
Erstellen wir ein DateTimeImmutable-Objekt
mit einem bestimmten Datum und einer bestimmten Uhrzeit:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Formatierte Ausgabe
Das erstellte Datum kann mit der Methode format
in einem bestimmten Format ausgegeben werden.
Machen wir das für den aktuellen Zeitpunkt:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Ergebnis (ändert sich je nach Ausführungszeitpunkt):
'2025-11-15 14:25:00'
Formatierung eines bestimmten Datums
Formatieren wir ein bestimmtes Datum:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Ergebnis der Codeausführung:
'31.12.2025'
Hinzufügen eines Intervalls
Das Hinzufügen eines Intervalls zu einem Datum
erfolgt mit der Methode add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 Tage
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Ergebnis der Codeausführung:
'2025-05-25'
Subtrahieren eines Intervalls
Das Subtrahieren eines Intervalls von einem Datum
erfolgt mit der Methode sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 Monat und 2 Tage
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Ergebnis der Codeausführung:
'2025-04-13'
Setzen eines neuen Datums
Für ein DateTimeImmutable-Objekt kann ein neues Datum
gesetzt werden. Dies geschieht
mit der Methode setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Ergebnis der Codeausführung:
'2024-12-31'
Setzen der Uhrzeit
Für ein DateTimeImmutable-Objekt kann eine neue Uhrzeit
gesetzt werden. Dies geschieht
mit der Methode setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Ergebnis der Codeausführung:
'15:30:00'
Vergleichen von Datumsangaben
Objekte mit Datumsangaben können verglichen werden:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Erstellen eines Objekts mit Zeitzone
Beim Erstellen eines DateTimeImmutable-Objekts
kann eine Zeitzone angegeben werden:
<?php
$timeZone = new DateTimeZone('Europe/Moscow');
$date = new DateTimeImmutable('2025-12-31 23:59:59', $timeZone);
echo $date->format('Y-m-d H:i:s e');
?>
Ergebnis der Codeausführung:
'2025-12-31 23:59:59 Europe/Moscow'
Siehe auch
-
Klasse
DateInterval,
die ein Zeitintervall definiert -
Klasse
DateTimeZone,
die eine Zeitzone definiert