DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::__constructYeni bir DateInterval nesnesi oluşturur

Açıklama

publicDateInterval::__construct(string$duration)

Yeni bir DateInterval nesnesi oluşturur.

Bağımsız Değişkenler

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.

duration Belirteçleri
BelirteçAçıklama
YYıl
MAy
DGün
W Hafta. Gün sayısına dönüştürülebilir. PHP 8.0.0 öncesinde, D harfiyle birlikte belirtilemiyordu.
HSaat
MDakika
Ssaniye

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ğil P1Y4D 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.

Hatalar/İstisnalar

zaman_aralığı bir zaman aralığına çözümlenemediğinde DateMalformedIntervalStringException istisnası oluşur.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0Exception 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.0W artık D ile birlikte belirtilebiliyor.

Örnekler

Ö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ı:


7

Ö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) }

Ayrıca Bakınız

  • DateInterval::format() - Zaman aralığını biçimler
  • DateTime::add() - Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
  • DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
  • DateTime::diff() - Returns the difference between two DateTime objects
To Top