(PHP 5 >= 5.2.0, PHP 7, PHP 8)
date_parse — Retourne un tableau associatif avec des informations détaillées sur une date/moment donnée
Description
date_parse(string
$datetime): array
Si aucune information sur un certain groupe d'éléments ne peut être trouvée, ces
éléments du tableau seront définis sur false ou seront manquants. Si nécessaire
pour construire un horodatage ou un objet DateTimeImmutable
à partir de la même chaîne datetime, plusieurs champs
peuvent être définis sur une valeur non-false. Voir les exemples ci-dessous
pour les cas où cela se produit.
Liste de paramètres
-
datetime
-
Date/moment dans un format accepté par
DateTimeImmutable::__construct().
Valeurs de retour
Retourne un tableau contenant des informations sur la date/moment analysé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.
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.
Erreurs / Exceptions
Dans le cas où la fonction retourne une erreur, l'élément "errors"
contiendra les messages d'erreur.
Historique
Exemples
Exemple #1 date_parse() avec une chaîne
datetime complète
<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>
L'exemple ci-dessus va afficher :
array(12) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Les éléments de fuseau horaire n'apparaissent que s'ils sont inclus
dans la chaîne datetime donnée. Dans ce cas,
il y aura toujours un élément zone_type et
quelques autres en fonction de sa valeur.
Exemple #2 date_parse() avec des informations abrégé sur le fuseau horaire
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
?>
L'exemple ci-dessus va afficher :
array(16) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(2)
["zone"]=>
int(0)
["is_dst"]=>
bool(true)
["tz_abbr"]=>
string(3) "BST"
}
Exemple #3 date_parse() avec des informations abrégé sur le fuseau horaire
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>
L'exemple ci-dessus va afficher :
array(14) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(3)
["tz_id"]=>
string(13) "Europe/London"
}
Si une chaîne datetime plus minimale est analysée,
moins d'informations sont disponibles. Dans cet exemple, toutes les parties
temporelles sont renvoyées comme false.
Exemple #4
date_parse() avec
une chaîne minimale
<?php
var_dump(date_parse("June 2nd, 2022"));
?>
L'exemple ci-dessus va afficher :
array(12) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
bool(false)
["minute"]=>
bool(false)
["second"]=>
bool(false)
["fraction"]=>
bool(false)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Les formats relatifs
n'influencent pas les valeurs analysées depuis des formats absoluts, mais
sont analysées dans l'élément "relatif".
Exemple #5 Exemple avec date_parse() et des formats relatifs
<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>
L'exemple ci-dessus va afficher :
array(13) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(6) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(7)
["hour"]=>
int(1)
["minute"]=>
int(0)
["second"]=>
int(0)
}
}
)
Certaines strophes, telles que Thursday (jeudi) définiront
la partie heure de la chaîne sur 0. Si Thursday
(jeudi) is est passé àDateTimeImmutable::__construct() l'heure,
la minute, la seconde et la fraction seront également définies sur
0. Dans l'exemple ci-dessous, l'élément année
est cependant laissé à false.
Exemple #6 date_parse() avec des effets secondaires
<?php
var_dump(date_parse("Thursday, June 2nd"));
?>
L'exemple ci-dessus va afficher :
array(13) {
["year"]=>
bool(false)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(7) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(0)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["weekday"]=>
int(4)
}
}
Voir aussi
- date_parse_from_format() - Récupère les informations d'une date donnée suivant un format spécifique pour analyser
le parameters
datetime avec un format spécifique
- checkdate() - Valide une date grégorienne pour une validation de date Grégorienne
- getdate() - Retourne la date/heure