DateInterval класы
DateInterval класы PHP-те уақыт аралықтарымен жұмыс істеуге мүмкіндік береді.
Ол екі күн арасындағы айырмашылықты сақтау үшін немесе күндермен жұмыс әдістерінде аралықты
көрсету үшін қолданылады. Аралық арнайы форматта жасалады.
Синтаксис
DateInterval::__construct(string $duration)
Аралық форматі
Формат P (period) әрпінен
және элементтерінен тұрады:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Бұл форматта: Y - жылдар, M - айлар,
D - күндер, T - уақыт бөлгіші,
H - сағаттар, M - минуттар, S - секундтар,
W - апталар.
Бұл әріптердің алдында сәйкес мән жазу керек.
Мысалы, 3Y үш жылды білдіреді,
ал 5Y2M 5 жыл және 2 айды білдіреді.
Жасалғаннан кейін DateInterval нысаны
келесі қасиеттерді қамтиды:
<?php
$interval->y // жылдар
$interval->m // айлар
$interval->d // күндер
$interval->h // сағаттар
$interval->i // минуттар
$interval->s // секундтар
$interval->f // микросекундтар
$interval->invert // 1 егер аралық теріс болса
$interval->days // күндер саны (егер diff() арқылы жасалған болса)
?>
Аралықтың жұмысын мысалдар арқылы қарастырайық:
Мысал
1 сағат, 45 минут және 30 секунд аралығын жасайық:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Мысал
3 апта және 2 күн аралығын жасайық:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Мысал
5 ай, 10 күн және 6 сағат аралығын жасайық:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Мысал
2 жыл және 15 минут аралығын жасайық:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Мысал
1 күн, 12 сағат және 30 секунд аралығын жасайық:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Мысал
1 жыл және 3 ай теріс аралығын жасайық (артқа аралық):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Мысал
2 сағат, 30 минут теріс аралығын жасайық (артқа аралық):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Кодты орындау нәтижесі:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Мысал
Аралықты ағымдағы күнге қосамыз:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Кодты орындау нәтижесі:
'2023-01-11'
Мысал
Екі күн арасындағы айырмашылықты есептейік:
<?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класы,
күн мен уақытты білдіреді -
DateTimeZoneкласы,
уақыт белдеуін білдіреді