Clasa DateTime
Clasa DateTime este instrumentul principal pentru lucrul cu date și timp în stil OOP. Ea permite crearea de obiecte data/timp, modificarea acestora și formatarea afișării.
Momentul curent de timp
Să creăm un obiect DateTime
cu data și ora curentă:
<?php
$date = new DateTime();
?>
Dată specifică
Să creăm un obiect DateTime cu o dată specificată:
<?php
$date = new DateTime('2025-12-31');
?>
Dată și oră specifică
Să creăm un obiect DateTime
cu o dată și oră specificate:
<?php
$date = new DateTime('2025-12-31 12:59:59');
?>
Formatarea afișării
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 DateTime();
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 DateTime('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 DateTime('2025-05-15');
$interval = new DateInterval('P10D'); // 10 zile
$date->add($interval);
echo $date->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 DateTime('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 lună și 2 zile
$date->sub($interval);
echo $date->format('Y-m-d');
?>
Rezultatul executării codului:
'2025-04-13'
Setarea unei noi date
Se poate seta o nouă dată pentru
obiectul DateTime. Acest lucru se face
prin metoda setDate:
<?php
$date = new DateTime();
$date->setDate(2025, 12, 31);
echo $date->format('Y-m-d');
?>
Rezultatul executării codului:
'2025-12-31'
Setarea orei
Se poate seta o nouă oră pentru
obiectul DateTime. Acest lucru se face
prin metoda setTime:
<?php
$date = new DateTime();
$date->setTime(15, 30, 0);
echo $date->format('H:i:s');
?>
Rezultatul executării codului:
'15:30:00'
Compararea datelor
Se pot compara obiectele cu date:
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Diferența dintre date
Cu ajutorul metodei diff se poate calcula
diferența dintre date. Diferența
este returnată sub forma unui obiect
DateInterval:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m months %d days');
?>
Rezultatul executării codului:
'1 months 14 days'
Fus orar
La crearea obiectului DateTime
se poate specifica fusul orar:
<?php
$timeZone = new DateTimeZone('Europe/Moscow');
$date = new DateTime('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
DateTimeImmutable,
care creează o dată imuabilă -
clasa
DateInterval,
care specifică un interval de timp -
clasa
DateTimeZone,
care specifică un fus orar