Клас DateTime
Клас DateTime
з'яўляецца асноўным інструментам для работы з датамі і часам у АБП стылі. Ён дазваляе ствараць аб'екты даты/часу, мадыфікаваць іх і фарматаваць вывад.
Бягучы момант часу
Давайце створым аб'ект DateTime
з бягучай датай і часам:
<?php
$date = new DateTime();
?>
Канкрэтная дата
Давайце створым аб'ект DateTime
з паказанай датай:
<?php
$date = new DateTime('2025-12-31');
?>
Канкрэтная дата
Давайце створым аб'ект DateTime
з паказанай датай і часам:
<?php
$date = new DateTime('2025-12-31 12:59:59');
?>
Фарматаванне вываду
Створаную дату можна вывесці ў зададзеным фармаце
з дапамогай метаду format
. Давайце зробім
гэта для бягучага моманту часу:
<?php
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
?>
Вынік (будзе мяняцца ў залежнасці ад моманту выканання):
'2025-11-15 14:25:00'
Фарматаванне зададзенай даты
Давайце адфарматуем зададзеную дату:
<?php
$date = new DateTime('2025-12-31');
echo $date->format('d.m.Y');
?>
Вынік выканання кода:
'31.12.2025'
Даданне інтэрвалу
Даданне інтэрвалу да даты
ажыццяўляецца праз метад add
:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P10D'); // 10 дзён
$date->add($interval);
echo $date->format('Y-m-d');
?>
Вынік выканання кода:
'2025-05-25'
Адніманне інтэрвалу
Адніманне інтэрвалу ад даты
ажыццяўляецца праз метад sub
:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 месяц і 2 дні
$date->sub($interval);
echo $date->format('Y-m-d');
?>
Вынік выканання кода:
'2025-04-13'
Устаноўка новай даты
Можна ўстанавіць новую дату для
аб'екта DateTime
. Гэта робіцца
праз метад setDate
:
<?php
$date = new DateTime();
$date->setDate(2025, 12, 31);
echo $date->format('Y-m-d');
?>
Вынік выканання кода:
'2025-12-31'
Устаноўка часу
Можна ўстанавіць новы час для
аб'екта DateTime
. Гэта робіцца
праз метад setTime
:
<?php
$date = new DateTime();
$date->setTime(15, 30, 0);
echo $date->format('H:i:s');
?>
Вынік выканання кода:
'15:30:00'
Параўнанне дат
Можна параўноўваць аб'екты з датамі:
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Розніца паміж датамі
З дапамогай метаду diff
можна вылічыць
розніцу паміж датамі. Розніца
вяртаецца ў выглядзе аб'екта
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');
?>
Вынік выканання кода:
'1 months 14 days'
Часавы пояс
Пры стварэнні аб'екта DateTime
можна паказаць часавы пояс:
<?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');
?>
Вынік выканання кода:
'2025-12-31 23:59:59 Europe/Moscow'
Глядзіце таксама
-
клас
DateTimeImmutable
,
які стварае нязменную дату -
клас
DateInterval
,
які задае часовы інтэрвал -
клас
DateTimeZone
,
які задае часавы пояс