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