(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::createFromDateString — Configure un objet DateInterval à partir des parties d'une chaîne
Style orienté objet
Style procédural
Utilise les analyseurs de dates comme celui de DateTimeImmutable et configure un objet DateInterval à partir d'une chaîne de caractères.
datetime
Une date avec des parties relatives. Spécifiquement, le format relatif supporté par l'analyseur utilisé pour les classes DateTimeImmutable, DateTime et la fonction strtotime sera utilisé pour construire le DateInterval.
Retourne DateInterval en cas de succès.
Style procédural retourne false
en cas d'erreur.
API orientée objet uniquement : Si une chaîne Date/Time invalide est passée, DateMalformedStringException est levée.
Version | Description |
---|---|
8.3.0 |
DateInterval::createFromDateString() lance désormais
DateMalformedStringException si une
chaîne invalide est passée. Auparavant, il retournait false ,
et un avertissement était émis.
date_interval_create_from_date_string() n'a pas été
modifié.
|
8.2.0 |
Seules les propriétés from_string et
date_string seront visibles lorsqu'un objet
DateInterval est créé avec cette méthode.
|
Exemple #1 Analyse d'intervalles de dates valides
<?php
// Chacun de ces intervalles sont égaux.
$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');
?>
Exemple #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";
?>
L'exemple ci-dessus va afficher :
Exemple #3 Analyse des combinaisons et des intervalles négatifs
<?php
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);
$i = DateInterval::createFromDateString('last weekday');
var_dump($i);
Résultat de l'exemple ci-dessus en 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" }
Résultat de l'exemple ci-dessus en PHP 8 est similaire à :
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) }