227 of 410 menu

Klasė DateInterval

Klasė DateInterval leidžia dirbti su laiko intervalais PHP. Ji naudojama skirtumui tarp dviejų datų saugoti arba intervalui nustatyti datų darbo metoduose. Intervalas kuriamas specialiame formate.

Sintaksė

DateInterval::__construct(string $duration)

Intervalo formatas

Formatas susideda iš raidės P (period) ir elementų:

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

Šiame formate: Y - metai, M - mėnesiai, D - dienos, T - laiko skiriklis, H - valandos, M - minutės, S - sekundės, W - savaitės.

Prieš šias raides reikia rašyti atitinkamą reikšmę. Pavyzdžiui, 3Y reikš tris metus, o 5Y2M reikš 5 metus ir 2 mėnesius.

Sukūrus objektas DateInterval turės šias savybes:

<?php $interval->y // metai $interval->m // mėnesiai $interval->d // dienos $interval->h // valandos $interval->i // minutės $interval->s // sekundės $interval->f // mikrosekundės $interval->invert // 1 jei intervalas neigiamas $interval->days // dienų skaičius (jei sukurta per diff()) ?>

Pažiūrėkime intervalo veikimą pavyzdžiuose:

Pavyzdys

Sukurkime intervalą 1 valandai, 45 minutėms ir 30 sekundžių:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime intervalą 3 savaitėms ir 2 dienoms:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime intervalą 5 mėnesiams, 10 dienų ir 6 valandoms:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime intervalą 2 metams ir 15 minučių:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime intervalą 1 dienai, 12 valandų ir 30 sekundžių:

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime neigiamą intervalą 1 metams ir 3 mėnesiams (intervalas atgal):

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Sukurkime neigiamą intervalą 2 valandoms, 30 minučių (intervalas atgal):

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

Kodo vykdymo rezultatas:

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

Pavyzdys

Pridėkime intervalą prie dabartinės datos:

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

Kodo vykdymo rezultatas:

'2023-01-11'

Pavyzdys

Apskaičiuokime skirtumą tarp dviejų datų:

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

Kodo vykdymo rezultatas:

'1 months 14 days'

Taip pat žiūrėkite

  • klasė DateTime,
    kuri reprezentuoja datą ir laiką
  • klasė DateTimeZone,
    kuri reprezentuoja laiko zoną
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti