Clasa DateTimeImmutable
Clasa DateTimeImmutable este analogul imuabil al lui DateTime. Acesta creează un nou obiect la orice modificare, ceea ce îl face mai previzibil și mai sigur pentru lucru.
Momentul curent de timp
Să creăm un obiect DateTimeImmutable
cu data și ora curentă:
<?php
$date = new DateTimeImmutable();
?>
Dată specifică
Să creăm un obiect DateTimeImmutable cu o dată specificată:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Dată și oră specifică
Să creăm un obiect DateTimeImmutable
cu o dată și oră specificate:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
Formatarea ieșirii
Data creată poate fi afișată într-un format dat
cu ajutorul metodei format. Să facem
acest lucru pentru momentul curent de timp:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Rezultatul (se va schimba în funcție de momentul execuției):
'2025-11-15 14:25:00'
Formatarea unei date specificate
Să formatăm o dată specificată:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
Rezultatul executării codului:
'31.12.2025'
Adăugarea unui interval
Adăugarea unui interval la o dată
se realizează prin metoda add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 zile
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Rezultatul executării codului:
'2025-05-25'
Scăderea unui interval
Scăderea unui interval dintr-o dată
se realizează prin metoda sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 lună și 2 zile
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Rezultatul executării codului:
'2025-04-13'
Setarea unei noi date
Se poate seta o nouă dată pentru
obiectul DateTimeImmutable. Acest lucru se face
prin metoda setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Rezultatul executării codului:
'2024-12-31'
Setarea orei
Se poate seta o nouă oră pentru
obiectul DateTimeImmutable. Acest lucru se face
prin metoda setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Rezultatul executării codului:
'15:30:00'
Compararea datelor
Se pot compara obiectele cu date:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Crearea unui obiect cu fus orar
La crearea obiectului DateTimeImmutable
se poate specifica un fus orar:
<?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');
?>
Rezultatul executării codului:
'2025-12-31 23:59:59 Europe/Moscow'
Vezi și
-
clasa
DateInterval,
care specifică un interval de timp -
clasa
DateTimeZone,
care specifică un fus orar