Класа 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,
која претставува временска зона