Klassen DateTimeImmutable
Klassen DateTimeImmutable er den uforanderlige modpart til DateTime. Den opretter et nyt objekt ved enhver modificering, hvilket gør den mere forudsigelig og sikker at arbejde med.
Nuværende tidspunkt
Lad os oprette et DateTimeImmutable-objekt
med den nuværende dato og tid:
<?php
$date = new DateTimeImmutable();
?>
Specifik dato
Lad os oprette et DateTimeImmutable-objekt med en angivet dato:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Specifik dato og tid
Lad os oprette et DateTimeImmutable-objekt
med en angivet dato og tid:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Formatering af output
Den oprettede dato kan udskrives i et specificeret format
ved hjælp af metoden format. Lad os gøre
dette for det nuværende tidspunkt:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Resultat (vil ændre sig afhængigt af udførelsestidspunktet):
'2025-11-15 14:25:00'
Formatering af angivet dato
Lad os formatere en angivet dato:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Resultat af kodeudførelse:
'31.12.2025'
Tilføjelse af interval
Tilføjelse af et interval til en dato
sker via metoden add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 dage
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Resultat af kodeudførelse:
'2025-05-25'
Subtrahering af interval
Subtrahering af et interval fra en dato
sker via metoden sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 måned og 2 dage
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Resultat af kodeudførelse:
'2025-04-13'
Indstilling af ny dato
Man kan indstille en ny dato for
et DateTimeImmutable-objekt. Dette gøres
via metoden setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Resultat af kodeudførelse:
'2024-12-31'
Indstilling af tid
Man kan indstille en ny tid for
et DateTimeImmutable-objekt. Dette gøres
via metoden setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Resultat af kodeudførelse:
'15:30:00'
Sammenligning af datoer
Man kan sammenligne objekter med datoer:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Oprettelse af objekt med tidszone
Ved oprettelse af et DateTimeImmutable-objekt
kan man angive en tidszone:
<?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');
?>
Resultat af kodeudførelse:
'2025-12-31 23:59:59 Europe/Moscow'
Se også
-
klassen
DateInterval,
som angiver et tidsinterval -
klassen
DateTimeZone,
som angiver en tidszone