DateInterval::createFromDateString

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

DateInterval::createFromDateStringDizgenin göreli kısımlarından bir DateInterval nesnesi döndürür

Açıklama

Nesne yönelimli kullanım

public static DateInterval::createFromDateString(string $zaman): DateInterval|false

Yordamsal kullanım

DateTimeImmutable kurucusunu normal tarih/saat ayrıştırcısı ile kullanarak çözümlenen dizgenin göreli kısımlarından bir DateInterval nesnesi oluşturur.

Bağımsız Değişkenler

zaman

Göreli gösterimle tarih. DateInterval'i oluşturmak için özellikle, DateTimeImmutable,strtotime() ve DateTime için kullanılan ayrıştırıcı tarafından desteklenen göreli gösterimler kullanılır.

P7D gibi bir ISO-8601 biçem dizgesini kullanmak için kurucu gerekir.

Dönen Değerler

Başarılıysa yeni bir DateInterval nesnesi döndürür, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 DateInterval bu yöntem ile oluşturulduğunda yalnızca from_string ve date_string özellikleri görünür olur.

Örnekler

Örnek 1 - Geçerli tarih aralıklarının çözümlenmesi

<?php
// Aralıklar her birinde eşittir.
$i = new DateInterval('P1D');
$i = DateInterval::createFromDateString('1 day');

$i = new DateInterval('P2W');
$i = DateInterval::createFromDateString('2 weeks');

$i = new DateInterval('P3M');
$i = DateInterval::createFromDateString('3 months');

$i = new DateInterval('P4Y');
$i = DateInterval::createFromDateString('4 years');

$i = new DateInterval('P1Y1D');
$i = DateInterval::createFromDateString('1 year + 1 day');

$i = new DateInterval('P1DT12H');
$i = DateInterval::createFromDateString('1 day + 12 hours');

$i = new DateInterval('PT3600S');
$i = DateInterval::createFromDateString('3600 seconds');
?>

Örnek 2 - Birleşik ve negatif tarih aralıklarının çözümlenmesi

<?php
$i
= DateInterval::createFromDateString('62 weeks + 1 day + 2 weeks + 2 hours + 70 minutes');
echo
$i->format('%d %h %i'), "\n";

$i = DateInterval::createFromDateString('1 year - 10 days');
echo
$i->format('%y %d'), "\n";
?>

Yukarıdaki örneğin çıktısı:


449 2 70
1 -10

Örnek 3 - Özel göreli tarih aralıklarının çözümlenmesi

<?php
//gelecek ayın son günü
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);

// haftanın son günü
$i = DateInterval::createFromDateString('last weekday');
var_dump($i);

Yukarıdaki örneğin PHP 8.2 çıktısı:

object(DateInterval)#1 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(22) "last day of next month"
}
object(DateInterval)#2 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(12) "last weekday"
}

Yukarıdaki örneğin PHP 8.0 çıktısı şuna benzer:

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(1)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(2)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
object(DateInterval)#2 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(0)
  ["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(1)
  ["special_amount"]=>
  int(-1)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(1)
}

add a note add a note

User Contributed Notes 1 note

up
4
Anonymous
15 years ago
DateInterval::createFromDateString ( string $time )

When the manual says "Uses the normal date parsers" it means that this function cannot take $time = ISO8601 strings like "P7D".  If you want to use those, you must use the constructor.
To Top