array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'dateinterval.createfromdatestring.php', 1 => 'DateInterval::createFromDateString', 2 => 'Sets up a DateInterval from the relative parts of the string', ), 'up' => array ( 0 => 'class.dateinterval.php', 1 => 'DateInterval', ), 'prev' => array ( 0 => 'dateinterval.construct.php', 1 => 'DateInterval::__construct', ), 'next' => array ( 0 => 'dateinterval.format.php', 1 => 'DateInterval::format', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/datetime/dateinterval/createfromdatestring.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::createFromDateString — Sets up a DateInterval from the relative parts of the string
Об'єктно-орієнтований стиль
Процедурний стиль
Uses the date/time parsers as used in the DateTimeImmutable constructor to create a DateInterval from the relative parts of the parsed string.
datetimeA date with relative parts. Specifically, the relative formats supported by the parser used for DateTimeImmutable, DateTime, and strtotime() will be used to construct the DateInterval.
To use an ISO-8601 format string like P7D, you must
use the DateInterval::__construct().
Returns DateInterval on success.
Процедурний стиль повертає false в разі помилки.
Object Oriented API only: If an invalid Date/Time string is passed, DateMalformedStringException is thrown.
| Версія | Опис |
|---|---|
| 8.3.0 |
DateInterval::createFromDateString() now throws
DateMalformedStringException if an
invalid string is passed. Previously, it returned false,
and a warning was emitted.
date_interval_create_from_date_string() has not been
changed.
|
| 8.2.0 |
Only the from_string and
date_string properties will be visible when a
DateInterval is created with this method.
|
Приклад #1 Parsing valid date intervals
<?php
// Each set of intervals is equal.
$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');
Приклад #2 Parsing combinations and negative intervals
<?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";Поданий вище приклад виведе:
449 2 70 1 -10
Приклад #3 Parsing special relative date intervals
<?php
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);
$i = DateInterval::createFromDateString('last weekday');
var_dump($i);В PHP 8.2 поданий вище приклад виведе:
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"
}
В PHP 8 поданий вище приклад виведе щось схоже на:
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)
}