227 of 410 menu

Клас 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,
    који представља временску зону
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј