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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне