DateInterval Sınıfı
DateInterval sınıfı, PHP'de zaman aralıklarıyla çalışmanızı sağlar.
İki tarih arasındaki farkı saklamak veya tarih işlemleri yöntemlerinde bir aralık belirtmek
için kullanılır. Aralık, özel bir biçimde oluşturulur.
Sözdizimi
DateInterval::__construct(string $duration)
Aralık Biçimi
Biçim, P (period) harfi
ve aşağıdaki öğelerden oluşur:
P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W
Bu biçimde: Y - yıllar, M - aylar,
D - günler, T - zaman ayırıcı,
H - saatler, M - dakikalar, S - saniyeler,
W - haftalar.
Bu harflerin önüne ilgili değer
yazılmalıdır. Örneğin, 3Y üç yıl
anlamına gelirken, 5Y2M
5 yıl ve 2 ay anlamına gelir.
Oluşturulduktan sonra DateInterval nesnesi
aşağıdaki özellikleri içerecektir:
<?php
$interval->y // yıllar
$interval->m // aylar
$interval->d // günler
$interval->h // saatler
$interval->i // dakikalar
$interval->s // saniyeler
$interval->f // mikrosaniyeler
$interval->invert // 1 eğer aralık negatifse
$interval->days // gün sayısı (eğer diff() ile oluşturulduysa)
?>
Aralığın çalışmasını örneklerle inceleyelim:
Örnek
1 saat, 45 dakika ve 30 saniyelik bir aralık oluşturalım:
<?php
$interval = new DateInterval('PT1H45M30S');
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 1
'i' => 45
's' => 30
)
Örnek
3 hafta ve 2 günlük bir aralık oluşturalım:
<?php
$interval = new DateInterval('P3W2D');
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 23
'h' => 0
'i' => 0
's' => 0
)
Örnek
5 ay, 10 gün ve 6 saatlik bir aralık oluşturalım:
<?php
$interval = new DateInterval('P5M10DT6H');
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 0
'm' => 5
'd' => 10
'h' => 6
'i' => 0
's' => 0
)
Örnek
2 yıl ve 15 dakikalık bir aralık oluşturalım:
<?php
$interval = new DateInterval('P2YT15M');
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 2
'm' => 0
'd' => 0
'h' => 0
'i' => 15
's' => 0
)
Örnek
1 gün, 12 saat ve 30 saniyelik bir aralık oluşturalım:
<?php
$interval = new DateInterval('P1DT12H30S');
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 1
'h' => 12
'i' => 0
's' => 30
)
Örnek
1 yıl ve 3 aylık negatif bir aralık oluşturalım (geriye doğru aralık):
<?php
$interval = new DateInterval('P1Y3M');
$interval->invert = 1;
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 1
'm' => 3
'd' => 0
'h' => 0
'i' => 0
's' => 0
'invert' => 1
)
Örnek
2 saat, 30 dakikalık negatif bir aralık oluşturalım (geriye doğru aralık):
<?php
$interval = new DateInterval('PT2H30M');
$interval->invert = 1;
var_dump($interval);
?>
Kodun çalıştırma sonucu:
DateInterval Object
(
'y' => 0
'm' => 0
'd' => 0
'h' => 2
'i' => 30
's' => 0
'invert' => 1
)
Örnek
Mevcut tarihe bir aralık ekleyelim:
<?php
$date = new DateTime('2023-01-01');
$interval = new DateInterval('P10D');
$date->add($interval);
echo $date->format('Y-m-d');
?>
Kodun çalıştırma sonucu:
'2023-01-11'
Örnek
İki tarih arasındaki farkı hesaplayalım:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m ay %d gün');
?>
Kodun çalıştırma sonucu:
'1 ay 14 gün'
Ayrıca Bakınız
-
tarih ve saati temsil eden
DateTimesınıfı -
zaman dilimini temsil eden
DateTimeZonesınıfı