(PHP 5 >= 5.3.0, PHP 7, PHP 8)
date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique
$format, string $datetime): arrayRetourne un tableau associatif contenant des informations détaillées sur une date/moment donnée.
format
       Documentation sur l'utilisation du format, 
       veuillez vous référer à la documentation de 
       DateTimeImmutable::createFromFormat(). Les 
       mêmes règles s'appliquent.
      
datetimeChaîne représentant la date/moment.
Retourne un tableau associatif avec des informations détaillées sur la date/moment donnée.
   Le tableau retourné a des clés pour year,
   month, day, hour,
   minute, second,
   fraction, et is_localtime.
  
   Si is_localtime est présent, alors
   zone_type indique le type de fuseau horaire. 
   Pour le type 1 (décalage UTC) les champs 
   zone et is_dst sont ajoutés.
   Pour le type 2 (abréviation) les champs 
   tz_abbr et is_dst sont ajoutés. 
   Pour le type 3 (identifiant de fuseau horaire) 
   les champs tz_abbr et tz_id
   sont ajoutés.
  
   Le tableau inclus les champs warning_count et
   warnings. Le premier indique le nombre 
   d'avertissements. Les clés du tableau warnings 
   indiquent la position dans le paramètre datetime 
   où l'avertissement s'est produit, avec la valeur de chaîne décrivant 
   l'avertissement lui-même. Un exemple ci-dessous montre un tel 
   avertissement.
  
   Le tableau inclus aussi les champs error_count et
   errors fields. Le premier indique le nombre 
   d'erreurs. Les clés du tableau errors indiquent 
   la position dans le paramètre datetime où l'erreur
   s'est produite, avec la valeur de chaîne décrivant l'avertissement 
   lui-même. Un exemple ci-dessous montre un tel avertissement.
  
    Le nombre d'éléments de tableau dans les tableaux warnings et
    errors peut être inférieur à warning_count 
    ou error_count s'ils se sont produits à la même position.
   
| Version | Description | 
|---|---|
| 7.2.0 | L'élément zonedu tableau retourné représente des secondes
       au lieu de minutes maintenant, et son signe est inversé. Par exemple-120est maintenant égal à7200. | 
Exemple #1 Exemple avec date_parse_from_format()
<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>
L'exemple ci-dessus va afficher :
Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )
    [error_count] => 0
    [errors] => Array
        (
        )
    [is_localtime] => 1
    [zone_type] => 1
    [zone] => 3600
    [is_dst] => 
)
Exemple #2 Exemple de date_parse_from_format() avec des warnings (avertissements)
<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);
echo "Warnings count: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
    echo "\tOn position {$position}: {$message}\n";
}
?>
L'exemple ci-dessus va afficher :
Warnings count: 1 On position 23: The parsed time was invalid
Exemple #3 Exemple de date_parse_from_format() avec des errors (erreurs)
<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);
echo "Errors count: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
    echo "\tOn position {$position}: {$message}\n";
}
?>
L'exemple ci-dessus va afficher :
Errors count: 3 On position 15: A two digit hour could not be found On position 19: Data missing