DateInterval Klasi
DateInterval klasi PHP-də zaman intervalları ilə işləməyə imkan verir.
O, iki tarix arasındakı fərqi saxlamaq və ya tarixlərlə işləyən metodlarda interval təyin etmək üçün istifadə olunur. Interval xüsusi formatda yaradılır.
Sintaksis
DateInterval::__construct(string $duration)
Interval formatı
Format P (period) hərfindən
və elementlərdən ibarətdir:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Bu formatda: Y - illər, M - aylar,
D - günlər, T - zaman ayırıcısı,
H - saatlar, M - dəqiqələr, S - saniyələr,
W - həftələr.
Bu hərflərdən əvvəl uyğun
dəyər yazılmalıdır. Məsələn, 3Y üç il mənasını verəcək,
5Y2M isə 5 il və 2 ayı ifadə edəcək.
Yaradıldıqdan sonra DateInterval obyekti
aşağıdakı xüsusiyyətləri ehtiva edəcək:
<?php
$interval->y // illər
$interval->m // aylar
$interval->d // günlər
$interval->h // saatlar
$interval->i // dəqiqələr
$interval->s // saniyələr
$interval->f // mikrosaniyələr
$interval->invert // 1 əgər interval mənfidirsə
$interval->days // günlərin sayı (əgər diff() ilə yaradılıbsa)
?>
Gəlin intervalın işləməsinə nümunələrlə baxaq:
Nümunə
1 saat, 45 dəqiqə və 30 saniyəlik interval yaradaq:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Nümunə
3 həftə və 2 günlük interval yaradaq:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Nümunə
5 ay, 10 gün və 6 saatlıq interval yaradaq:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Nümunə
2 il və 15 dəqiqəlik interval yaradaq:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Nümunə
1 gün, 12 saat və 30 saniyəlik interval yaradaq:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Nümunə
1 il və 3 ay mənfi interval yaradaq (əks istiqamətdə interval):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Nümunə
2 saat, 30 dəqiqə mənfi interval yaradaq (əks istiqamətdə interval):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Kodun icrasının nəticəsi:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Nümunə
Cari tarixə interval əlavə edək:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Kodun icrasının nəticəsi:
'2023-01-11'
Nümunə
İki tarix arasındakı fərqi hesablayaq:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m months %d days');
?>
Kodun icrasının nəticəsi:
'1 months 14 days'
Həmçinin baxın
-
DateTimeklasi,
tarixi və zamanı təmsil edir -
DateTimeZoneklasi,
zaman zonasını təmsil edir