Klass DateTimeImmutable
Klassen DateTimeImmutable är en oföränderlig motsvarighet till DateTime. Den skapar ett nytt objekt vid varje modifiering, vilket gör den mer förutsägbar och säker att arbeta med.
Aktuellt tidpunkt
Låt oss skapa ett objekt DateTimeImmutable
med aktuellt datum och tid:
<?php
$date = new DateTimeImmutable();
?>
Specifikt datum
Låt oss skapa ett objekt DateTimeImmutable med angivet datum:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Specifikt datum och tid
Låt oss skapa ett objekt DateTimeImmutable
med angivet datum och tid:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Formatering av utdata
Det skapade datumet kan skrivas ut i ett specificerat format
med metoden format. Låt oss göra
detta för aktuell tidpunkt:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Resultat (kommer att ändras beroende på när det exekveras):
'2025-11-15 14:25:00'
Formatering av angivet datum
Låt oss formatera ett angivet datum:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Resultat av kod exekvering:
'31.12.2025'
Lägga till intervall
Att lägga till ett intervall till ett datum
görs genom metoden add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 dagar
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Resultat av kod exekvering:
'2025-05-25'
Subtrahera intervall
Att subtrahera ett intervall från ett datum
görs genom metoden sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 månad och 2 dagar
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Resultat av kod exekvering:
'2025-04-13'
Ställa in nytt datum
Man kan ställa in ett nytt datum för
ett objekt DateTimeImmutable. Detta görs
genom metoden setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Resultat av kod exekvering:
'2024-12-31'
Ställa in tid
Man kan ställa in ny tid för
ett objekt DateTimeImmutable. Detta görs
genom metoden setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Resultat av kod exekvering:
'15:30:00'
Jämföra datum
Man kan jämföra objekt med datum:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Skapa objekt med tidszon
När man skapar ett objekt DateTimeImmutable
kan man ange tidszon:
<?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 av kod exekvering:
'2025-12-31 23:59:59 Europe/Moscow'
Se även
-
klassen
DateInterval,
som specificerar ett tidsintervall -
klassen
DateTimeZone,
som specificerar en tidszon