Klase DateTimeImmutable
Klase DateTimeImmutable ir nemainīgs analogs klasei DateTime. Tā veido jaunu objektu pie jebkādas modifikācijas, padarot to paredzamāku un drošāku darbam.
Pašreizējais laika moments
Izveidosim objektu DateTimeImmutable
ar pašreizējo datumu un laiku:
<?php
$date = new DateTimeImmutable();
?>
Konkrēts datums
Izveidosim objektu DateTimeImmutable ar norādīto datumu:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Konkrēts datums un laiks
Izveidosim objektu DateTimeImmutable
ar norādīto datumu un laiku:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Formāta izvade
Izveidoto datumu var izvadīt noteiktā formātā
izmantojot metodi format. Izdarīsim to
pašreizējam laika momentam:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Rezultāts (mainīsies atkarībā no izpildes brīža):
'2025-11-15 14:25:00'
Norādīta datuma formatēšana
Formatēsim norādīto datumu:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Koda izpildes rezultāts:
'31.12.2025'
Intervāla pievienošana
Intervāla pievienošana datumam
tiek veikta caur metodi add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 dienas
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Koda izpildes rezultāts:
'2025-05-25'
Intervāla atņemšana
Intervāla atņemšana no datuma
tiek veikta caur metodi sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 mēnesis un 2 dienas
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Koda izpildes rezultāts:
'2025-04-13'
Jauna datuma iestatīšana
Var iestatīt jaunu datumu
objektam DateTimeImmutable. Tas tiek darīts
caur metodi setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Koda izpildes rezultāts:
'2024-12-31'
Laika iestatīšana
Var iestatīt jaunu laiku
objektam DateTimeImmutable. Tas tiek darīts
caur metodi setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Koda izpildes rezultāts:
'15:30:00'
Datu salīdzināšana
Var salīdzināt objektus ar datumiem:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Objekta izveide ar laika joslu
Izveidojot objektu DateTimeImmutable
var norādīt laika joslu:
<?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');
?>
Koda izpildes rezultāts:
'2025-12-31 23:59:59 Europe/Moscow'
Skatiet arī
-
klasi
DateInterval,
kura norāda laika intervālu -
klasi
DateTimeZone,
kura norāda laika joslu