(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::__construct — Yeni bir DateInterval nesnesi oluşturur
duration
Dizge türünde zaman aralığı belirtimi.
Zaman aralığını (period
) belirtmek için biçem P
harfiyle başlar, ardından süreyi belirten bir tamsayı değer gelir. Süre zaman bileşenleri içeriyorsa bunların önüne T
harfi getirilir.
Belirteç | Açıklama |
---|---|
Y | Yıl |
M | Ay |
D | Gün |
W | Hafta. Gün sayısına dönüştürülebilir. PHP 8.0.0 öncesinde, D harfiyle birlikte belirtilemiyordu. |
H | Saat |
M | Dakika |
S | saniye |
Burada bazı basit örneklere yer verilmiştir. İki gün: P2D
. İki saniye: PT2S
. Altı yıl, 5 dakika: P6YT5M
.
Bilginize:
Birimler belirtilirken en büyük ölçekli birim solda en küçük ölçekli birim sağda kalacak şekilde veri girilir. Dolayısıyla, örneğin, aylar yıllardan sonra, günlerden önce yer alır. Bur yıl dört gün
P4D1Y
değilP1Y4D
olarak ifade edilir.
Belirtim bir tarih saat olarak da gösterilebilir. Örneğin, bir yıl dört gün P0001-00-04T00:00:00
olarak gösterilebilir. Fakat bu biçemde belirtilen değerler birime tanınan azami değeri aşmamalıdır (örneğin 25
saat geçersizdir).
Bu biçemler » ISO 8601 süre belirtimine dayanır.
zaman_aralığı
bir zaman aralığına çözümlenemediğinde DateMalformedIntervalStringException istisnası oluşur.
Sürüm: | Açıklama |
---|---|
8.3.0 | Exception yerine artık DateMalformedIntervalStringException istisnası oluşuyor. |
8.2.0 | Yalnızca y 'den f 'ye kadar özellikler ile invert ve days özelliklerine ek olarak yeni mantıksal from_string özelliği görünür olacaktır. |
8.0.0 | W artık D ile birlikte belirtilebiliyor. |
Örnek 1 - DateInterval nesnelerinin oluşturulması ve kullanılması
<?php
// Belli bir tarih oluştur
$someDate = \DateTime::createFromFormat("Y-m-d H:i", "2022-08-25 14:18");
// Tarih aralığı oluştur
$interval = new \DateInterval("P7D");
// Tarih aralığını ekle
$someDate->add($interval);
// Tarih aralığını dizgeye dönüştür
echo $interval->format("%d");
Yukarıdaki örneğin çıktısı:
Örnek 2 - DateInterval örneği
<?php
$interval = new DateInterval('P1W2D');
var_dump($interval);
?>
Yukarıdaki örneğin PHP 8.2 çıktısı:
object(DateInterval)#1 (10) { ["y"]=> int(0) ["m"]=> int(0) ["d"]=> int(9) ["h"]=> int(0) ["i"]=> int(0) ["s"]=> int(0) ["f"]=> float(0) ["invert"]=> int(0) ["days"]=> bool(false) ["from_string"]=> bool(false) }
Yukarıdaki örneğin PHP 8 çıktısı:
object(DateInterval)#1 (16) { ["y"]=> int(0) ["m"]=> int(0) ["d"]=> int(9) ["h"]=> int(0) ["i"]=> int(0) ["s"]=> int(0) ["f"]=> float(0) ["weekday"]=> int(0) ["weekday_behavior"]=> int(0) ["first_last_day_of"]=> int(0) ["invert"]=> int(0) ["days"]=> bool(false) ["special_type"]=> int(0) ["special_amount"]=> int(0) ["have_weekday_relative"]=> int(0) ["have_special_relative"]=> int(0) }
Yukarıdaki örneğin PHP 7 çıktısı:
object(DateInterval)#1 (16) { ["y"]=> int(0) ["m"]=> int(0) ["d"]=> int(2) ["h"]=> int(0) ["i"]=> int(0) ["s"]=> int(0) ["f"]=> float(0) ["weekday"]=> int(0) ["weekday_behavior"]=> int(0) ["first_last_day_of"]=> int(0) ["invert"]=> int(0) ["days"]=> bool(false) ["special_type"]=> int(0) ["special_amount"]=> int(0) ["have_weekday_relative"]=> int(0) ["have_special_relative"]=> int(0) }