DateInterval Klassi
DateInterval klassi PHP-da vaqt intervallari bilan ishlash imkonini beradi.
U ikki sana orasidagi farqni saqlash yoki sana bilan ishlash usullarida intervalni belgilash uchun ishlatiladi.
Interval maxsus formatda yaratiladi.
Sintaksis
DateInterval::__construct(string $duration)
Interval formati
Format P (period) harfidan
va elementlardan iborat:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Ushbu formatda: Y - yillar, M - oylar,
D - kunlar, T - vaqt ajratgichi,
H - soatlar, M - daqiqalar, S - soniyalar,
W - haftalar.
Ushbu harflar oldiga mos keladigan
qiymat yozilishi kerak. Masalan, 3Y uch yilni anglatadi,
5Y2M esa 5 yil va 2 oyni bildiradi.
Yaratilgandan so'ng, DateInterval obyekti
quyidagi xususiyatlarni o'z ichiga oladi:
<?php
$interval->y // yillar
$interval->m // oylar
$interval->d // kunlar
$interval->h // soatlar
$interval->i // daqiqalar
$interval->s // soniyalar
$interval->f // mikrosekundlar
$interval->invert // 1 agar interval manfiy bo'lsa
$interval->days // kunlar soni (agar diff() orqali yaratilgan bo'lsa)
?>
Keling, intervalning ishlashini misollar orqali ko'rib chiqaylik:
Misol
1 soat, 45 daqiqa va 30 soniyalik interval yaratamiz:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Misol
3 hafta va 2 kunlik interval yaratamiz:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Misol
5 oy, 10 kun va 6 soatlik interval yaratamiz:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Misol
2 yil va 15 daqiqalik interval yaratamiz:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Misol
1 kun, 12 soat va 30 soniyalik interval yaratamiz:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Misol
1 yil va 3 oylik manfiy interval yaratamiz (orqaga interval):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Misol
2 soat, 30 daqiqalik manfiy interval yaratamiz (orqaga interval):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Kodni bajarish natijasi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Misol
Joriy sanaga interval qo'shamiz:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Kodni bajarish natijasi:
'2023-01-11'
Misol
Ikki sana orasidagi farqni hisoblaymiz:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m oy %d kun');
?>
Kodni bajarish natijasi:
'1 oy 14 kun'
Yana qarang
-
DateTimeklassi,
sana va vaqtni ifodalaydi -
DateTimeZoneklassi,
vaqt mintaqasini ifodalaydi