227 of 410 menu

Klasa DateInterval

Klasa DateInterval omogućava rad sa vremenskim intervalima u PHP. Koristi se za čuvanje razlike između dva datuma ili za zadavanje intervala u metodama za rad sa datumima. Interval se kreira u specijalnom formatu.

Sintaksa

DateInterval::__construct(string $duration)

Format intervala

Format se sastoji od slova P (period) i elemenata:

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

U ovom formatu: Y - godine, M - meseci, D - dani, T - razdvajač vremena, H - sati, M - minuti, S - sekunde, W - nedelje.

Ispred ovih slova treba pisati odgovarajuću vrednost. Na primer, 3Y će značiti tri godine, a 5Y2M će označavati 5 godina i 2 meseca.

Nakon kreiranja objekat DateInterval će sadržati sledeće osobine:

<?php $interval->y // godine $interval->m // meseci $interval->d // dani $interval->h // sati $interval->i // minuti $interval->s // sekunde $interval->f // mikrosekunde $interval->invert // 1 ako je interval negativan $interval->days // broj dana (ako je kreirano preko diff()) ?>

Hajde da pogledamo rad intervala na primerima:

Primer

Hajde da kreiramo interval od 1 sat, 45 minuta i 30 sekundi:

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo interval od 3 nedelje i 2 dana:

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo interval od 5 meseci, 10 dana i 6 sati:

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo interval od 2 godine i 15 minuta:

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo interval od 1 dan, 12 sati i 30 sekundi:

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo negativni interval od 1 godinu i 3 meseca (interval unazad):

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

Rezultat izvršavanja koda:

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

Primer

Hajde da kreiramo negativni interval od 2 sata, 30 minuta (interval unazad):

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

Rezultat izvršavanja koda:

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

Primer

Dodajmo interval tekućem datumu:

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

Rezultat izvršavanja koda:

'2023-01-11'

Primer

Izračunajmo razliku između dva datuma:

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

Rezultat izvršavanja koda:

'1 months 14 days'

Vidi još

  • klasu DateTime,
    koja predstavlja datum i vreme
  • klasu DateTimeZone,
    koja predstavlja vremensku zonu
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij