DateInterval klas-y
DateInterval klas-y PHP-de wagt aralyklary bilen işlemäge mümkinçilik berýär.
Ol iki senäniň arasyndaky tapawudy saklamak ýa-da seneler bilen işleýän usullarynda aralyk bellämek üçin ulanylýar. Aralyk aýratyn formatda döredilýär.
Sintaksis
DateInterval::__construct(string $duration)
Aralygyň formaty
Format P (period) harpydan
we elementlerden ybarat:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Bu formada: Y - ýyllar, M - aýlar,
D - günler, T - wagtyň bölüji,
H - sagatlar, M - minutlar, S - sekuntlar,
W - hepdelikler.
Bu harplaryň öňünde degişli
görkezijini ýazmaly. Mysal üçin, 3Y
üç ýyl manyny berer, 5Y2M bolsa
5 ýyl we 2 aý manyny berer.
Döredilenden soň DateInterval
obýekti aşakdaky aýratynlyklary saklar:
<?php
$interval->y // ýyllar
$interval->m // aýlar
$interval->d // günler
$interval->h // sagatlar
$interval->i // minutlar
$interval->s // sekuntlar
$interval->f // mikrosekuntlar
$interval->invert // 1 eger aralyk ters bolsa
$interval->days // günleriň sany (eger diff() arkaly döredilense)
?>
Geliň, aralygyň işiniň mysallaryna seredeliň:
Mysal
1 sagat, 45 minut we 30 sekuntlyk aralyk döredeliň:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Mysal
3 hepdelik we 2 günlük aralyk döredeliň:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Mysal
5 aý, 10 gün we 6 sagatlyk aralyk döredeliň:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Mysal
2 ýyl we 15 minutlyk aralyk döredeliň:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Mysal
1 gün, 12 sagat we 30 sekuntlyk aralyk döredeliň:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Mysal
1 ýyl we 3 aýlyk ters aralyk döredeliň (yza aralyk):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Mysal
2 sagat, 30 minutlyk ters aralyk döredeliň (yza aralyk):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Kodyň ýerine ýetiriliş netijesi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Mysal
Aralygy häzirki sene goşalyň:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Kodyň ýerine ýetiriliş netijesi:
'2023-01-11'
Mysal
Iki senäniň arasyndaky tapawudy hasaplalyň:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m months %d days');
?>
Kodyň ýerine ýetiriliş netijesi:
'1 months 14 days'
Şeýle-de görüň
-
DateTimeklas-y,
senäni we wagty görkezýär -
DateTimeZoneklas-y,
wagt guşagyny görkezýär