Класс 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класси,
вакт минтақасини белгилайди