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.
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::createFromDateString — Dizgenin göreli kısımlarından bir DateInterval nesnesi döndürür
Nesne yönelimli kullanım
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.
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.
Başarılıysa yeni bir DateInterval nesnesi döndürür,
başarısızlık durumunda false
döner.
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.
|
Ö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ı:
Ö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) }