227 of 410 menu

Třída DateInterval

Třída DateInterval umožňuje pracovat s časovými intervaly v PHP. Používá se pro ukládání rozdílu mezi dvěma datumy nebo pro zadání intervalu v metodách pro práci s datumy. Interval se vytváří ve speciálním formátu.

Syntaxe

DateInterval::__construct(string $duration)

Formát intervalu

Formát se skládá z písmene P (period) a prvků:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

V tomto formátu: Y - roky, M - měsíce, D - dny, T - oddělovač času, H - hodiny, M - minuty, S - sekundy, W - týdny.

Před těmito písmeny je třeba psát příslušnou hodnotu. Například 3Y bude znamenat tři roky, a 5Y2M bude označovat 5 let a 2 měsíce.

Po vytvoření bude objekt DateInterval obsahovat následující vlastnosti:

<?php $interval->y // roky $interval->m // měsíce $interval->d // dny $interval->h // hodiny $interval->i // minuty $interval->s // sekundy $interval->f // mikrosekundy $interval->invert // 1 pokud je interval záporný $interval->days // počet dní (pokud vytvořeno přes diff()) ?>

Podívejme se na práci s intervalem na příkladech:

Příklad

Vytvoříme interval 1 hodiny, 45 minut a 30 sekund:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

Příklad

Vytvoříme interval 3 týdny a 2 dny:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

Příklad

Vytvoříme interval 5 měsíců, 10 dnů a 6 hodin:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

Příklad

Vytvoříme interval 2 roky a 15 minut:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

Příklad

Vytvoříme interval 1 den, 12 hodin a 30 sekund:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

Příklad

Vytvoříme záporný interval 1 rok a 3 měsíce (interval zpět):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

Příklad

Vytvoříme záporný interval 2 hodiny, 30 minut (interval zpět):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

Výsledek provedení kódu:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

Příklad

Přidáme interval k aktuálnímu datu:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

Výsledek provedení kódu:

'2023-01-11'

Příklad

Vypočítáme rozdíl mezi dvěma datumy:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m months %d days'); ?>

Výsledek provedení kódu:

'1 months 14 days'

Viz také

  • třída DateTime,
    která reprezentuje datum a čas
  • třída DateTimeZone,
    která reprezentuje časové pásmo
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout