Fonction PHP date_interval_create_from_date_string ()

Définition et utilisation

le date_interval_create_from_date_string()function est un alias de DateInterval :: createFromDateString . Cela accepte une chaîne spécifiant un intervalle et renvoie un objet DateInterval.

Syntaxe

date_interval_create_from_date_string($time)

Paramètres

Sr. Non Paramètre et description
1

time (Mandatory)

Il s'agit d'une valeur de chaîne spécifiant la date / l'intervalle au format de formats relatifs dans lequel vous souhaitez que la chaîne de date de sortie soit.

Valeurs de retour

PHP date_interval_create_from_date_string () renvoie un objet DateInterval représentant la valeur d'intervalle donnée.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5.3 de PHP et fonctionne avec toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction date_interval_create_from_date_string () -

<?php
   $time = "3year + 3months + 26 day + 12 hours+ 30 minutes +23 seconds";
   $interval = date_interval_create_from_date_string($time);
   print_r($interval);
?>

Cela produira le résultat suivant -

DateInterval Object
(
    [y] => 3
    [m] => 3
    [d] => 26
    [h] => 12
    [i] => 30
    [s] => 23
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

Dans cette fonction, vous ne pouvez pas utiliser des chaînes ISO8601 comme "P12M" pour analyser ces intervalles, vous devez utiliser le constructeur DateInterval .

Exemple

Dans l'exemple suivant, nous utilisons les notations de chaînes ISO8601 pour créer un intervalle -

<?php
  $time1 = new DateInterval('P25DP8MP9Y');
   print_r($time1);
   $time2 = new DateInterval('PT10H');
   print_r($time2);
?>

Cela produira le résultat suivant -

DateInterval Object
(
    [y] => 9
    [m] => 8
    [d] => 25
    [h] => 0
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)
DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 0
    [h] => 10
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

Exemple

L'exemple suivant ajoute un intervalle à la date actuelle et imprime les résultats. Ici, nous utilisons la fonction date_interval_create_from_date_string pour calculer l'intervalle. -

<?php
   $date = date_create(); 
   $str = "12year 3months 14days";
   $interval = date_interval_create_from_date_string($str);

   $res1 = date_add($date, $interval); 
   print("Date after ".$str);
   print(": ".date_format($res1, 'Y-m-d'));
?>

Cela produira le résultat suivant -

Date after 12year 3months 14days: 2032-08-28

Exemple

L'exemple suivant crée des intervalles de date à l'aide de diverses chaînes ISO8601 et de leurs chaînes normales respectives -

<?php
   print(new DateInterval('P12D')."\n");
   print(DateInterval::createFromDateString('12 day')."\n");

   print(new DateInterval('P7')."\n");
   print(DateInterval::createFromDateString('7 months')."\n");

   print(new DateInterval('P12Y')."\n");
   print(DateInterval::createFromDateString('12 years')."\n");

   print(new DateInterval('PT9H')."\n");
   print(DateInterval::createFromDateString('9 hours')."\n");

   print(new DateInterval('PT19i')."\n");
   print(DateInterval::createFromDateString('19 minutes')."\n");

   print(new DateInterval('PT45S')."\n");
   print(DateInterval::createFromDateString('45 seconds')."\n");
?>