227 of 410 menu

DateInterval-luokka

DateInterval-luokka mahdollistaa aikavälien käsittelyn PHP:ssä. Sitä käytetään kahden päivämäärän välisen eron tallentamiseen tai aikavälin määrittämiseen päivämäärämenetelmissä. Aikaväli luodaan erityisessä muodossa.

Syntaksi

DateInterval::__construct(string $duration)

Aikavälin muoto

Muoto koostuu kirjaimesta P (period) ja elementeistä:

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

Tässä muodossa: Y - vuodet, M - kuukaudet, D - päivät, T - ajan erotin, H - tunnit, M - minuutit, S - sekunnit, W - viikot.

Näiden kirjainten eteen tulee kirjoittaa vastaava arvo. Esimerkiksi 3Y tarkoittaa kolmea vuotta, ja 5Y2M tarkoittaa 5 vuotta ja 2 kuukautta.

Luomisen jälkeen DateInterval-olio sisältää seuraavat ominaisuudet:

<?php $interval->y // vuodet $interval->m // kuukaudet $interval->d // päivät $interval->h // tunnit $interval->i // minuutit $interval->s // sekunnit $interval->f // mikrosekunnit $interval->invert // 1 jos aikaväli on negatiivinen $interval->days // päivien lukumäärä (jos luotu diff():llä) ?>

Katsotaan aikavälin toimintaa esimerkein:

Esimerkki

Luodaan aikaväli, joka on 1 tunti, 45 minuuttia ja 30 sekuntia:

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan aikaväli, joka on 3 viikkoa ja 2 päivää:

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan aikaväli, joka on 5 kuukautta, 10 päivää ja 6 tuntia:

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan aikaväli, joka on 2 vuotta ja 15 minuuttia:

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan aikaväli, joka on 1 päivä, 12 tuntia ja 30 sekuntia:

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan negatiivinen aikaväli, joka on 1 vuosi ja 3 kuukautta (aikaväli taaksepäin):

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

Koodin suorituksen tulos:

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

Esimerkki

Luodaan negatiivinen aikaväli, joka on 2 tuntia, 30 minuuttia (aikaväli taaksepäin):

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

Koodin suorituksen tulos:

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

Esimerkki

Lisätään aikaväli nykyiseen päivämäärään:

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

Koodin suorituksen tulos:

'2023-01-11'

Esimerkki

Lasketaan kahden päivämäärän välinen ero:

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

Koodin suorituksen tulos:

'1 months 14 days'

Katso myös

  • luokka DateTime,
    joka edustaa päivämäärää ja aikaa
  • luokka DateTimeZone,
    joka edustaa aikavyöhykettä
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää