Klasė DateTimeImmutable
Klasė DateTimeImmutable yra nekeičiamas DateTime analogas. Ji sukuria naują objektą bet kokio modifikavimo metu, todėl jos veikimas yra labiau nuspėjamas ir saugesnis.
Dabartinis laiko momentas
Sukurkime DateTimeImmutable objektą
su dabartine data ir laiku:
<?php
$date = new DateTimeImmutable();
?>
Konkreči data
Sukurkime DateTimeImmutable objektą su nurodyta data:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Konkreči data ir laikas
Sukurkime DateTimeImmutable objektą
su nurodyta data ir laiku:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Išvedimo formatavimas
Sukurta data gali būti išvesta nurodytu formatu
naudojant metodą format. Padarykime tai
dabartiniam laiko momentui:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Rezultatas (keisis priklausomai nuo vykdymo momento):
'2025-11-15 14:25:00'
Nurodytos datos formatavimas
Suformatuokime nurodytą datą:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Kodo vykdymo rezultatas:
'31.12.2025'
Intervalo pridėjimas
Intervalo pridėjimas prie datos
atliekamas naudojant metodą add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 dienų
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Kodo vykdymo rezultatas:
'2025-05-25'
Intervalo atėmimas
Intervalo atėmimas iš datos
atliekamas naudojant metodą sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 mėnuo ir 2 dienos
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Kodo vykdymo rezultatas:
'2025-04-13'
Naujos datos nustatymas
Galima nustatyti naują datą
DateTimeImmutable objektui. Tai daroma
naudojant metodą setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Kodo vykdymo rezultatas:
'2024-12-31'
Laiko nustatymas
Galima nustatyti naują laiką
DateTimeImmutable objektui. Tai daroma
naudojant metodą setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Kodo vykdymo rezultatas:
'15:30:00'
Datų palyginimas
Galima palyginti datos objektus:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Objekto su laiko juosta sukūrimas
Kuriant DateTimeImmutable objektą
galima nurodyti laiko juostą:
<?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');
?>
Kodo vykdymo rezultatas:
'2025-12-31 23:59:59 Europe/Moscow'
Taip pat žiūrėkite
-
klasė
DateInterval,
kuri nurodo laiko intervalą -
klasė
DateTimeZone,
kuri nurodo laiko juostą