DateInterval-klas
Die klas DateInterval laat jou toe om met tydintervalle in PHP te werk.
Dit word gebruik om die verskil tussen twee datums te stoor of om 'n interval
in metodes vir datering te spesifiseer. Die interval word in 'n spesiale formaat geskep.
Sintaksis
DateInterval::__construct(string $duration)
Intervalformaat
Die formaat bestaan uit die letter P (period)
en elemente:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
In hierdie formaat: Y - jare, M - maande,
D - dae, T - tydskeier,
H - ure, M - minute, S - sekondes,
W - weke.
Voor hierdie letters moet jy die ooreenstemmende
waarde skryf. Byvoorbeeld, 3Y sal beteken
drie jaar, en 5Y2M sal aandui
5 jaar en 2 maande.
Na skepping sal die objek DateInterval
die volgende eienskappe bevat:
<?php
$interval->y // jare
$interval->m // maande
$interval->d // dae
$interval->h // ure
$interval->i // minute
$interval->s // sekondes
$interval->f // mikrosekondes
$interval->invert // 1 indien interval negatief is
$interval->days // aantal dae (indien geskep deur diff())
?>
Kom ons kyk na die werking van die interval aan die hand van voorbeelde:
Voorbeeld
Skep 'n interval van 1 uur, 45 minute en 30 sekondes:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Voorbeeld
Skep 'n interval van 3 weke en 2 dae:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Voorbeeld
Skep 'n interval van 5 maande, 10 dae en 6 ure:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Voorbeeld
Skep 'n interval van 2 jaar en 15 minute:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Voorbeeld
Skep 'n interval van 1 dag, 12 ure en 30 sekondes:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Voorbeeld
Skep 'n negatiewe interval van 1 jaar en 3 maande (interval terug):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Voorbeeld
Skep 'n negatiewe interval van 2 ure, 30 minute (interval terug):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Resultaat van kode-uitvoering:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Voorbeeld
Voeg 'n interval by die huidige datum:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Resultaat van kode-uitvoering:
'2023-01-11'
Voorbeeld
Bereken die verskil tussen twee datums:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m maande %d dae');
?>
Resultaat van kode-uitvoering:
'1 maande 14 dae'
Sien ook
-
klas
DateTime,
wat 'n datum en tyd verteenwoordig -
klas
DateTimeZone,
wat 'n tydsone verteenwoordig