(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
Retourne 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.
datetime
Chaî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.
Cette fonction lance une ValueError lorsque le datetime
contient des octets NULL.
Version | Description |
---|---|
8.0.21, 8.1.8, 8.2.0 | Lance désormais une ValueError lorsque des octets NULL sont passés dans datetime , ce qui était auparavant ignoré silencieusement. |
7.2.0 | L'élément zone du tableau retourné représente des secondes au lieu de minutes maintenant, et son signe est inversé. Par exemple -120 est 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