array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'it', ), '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
Stile orientato agli oggetti
Stile procedurale
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.
Stile procedurale restituisce false in caso di fallimento.
Object Oriented API only: If an invalid Date/Time string is passed, DateMalformedStringException is thrown.
| Versione | Descrizione |
|---|---|
| 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.
|
Example #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');
Example #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";Il precedente esempio visualizzerĂ :
449 2 70 1 -10
Example #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);Output of the above example in 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"
}
Output of the above example in PHP 8 is similar to:
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)
}