oujood.com

Tutoriel PHP : Comment utiliser la fonction date_parse() pour analyser des dates et des heures

Cet article vous explique comment utiliser la fonction date_parse() en PHP pour parser des dates et des heures
La fonction date_parse() est une fonction puissante qui peut être utilisée dans de nombreux contextes, tels que le traitement de formulaires, la validation de données, ou la génération de rapports.

Tutoriel : Utilisation de la fonction date_parse() en PHP

HP Version: 5.2+

Définition

La fonction date_parse() est une fonction intégrée en PHP qui analyse une date donnée et la décompose en un tableau associatif contenant des informations sur les différentes parties de la date.

Syntaxe générale

La syntaxe générale de la fonction date_parse() est la suivante :

$result = date_parse(string $date);

Paramètres

La fonction date_parse() accepte un seul paramètre obligatoire :

  • $date : La chaîne de caractères représentant la date à analyser.

Valeurs possibles dans le tableau de résultat

La fonction date_parse() renvoie un tableau associatif contenant les différentes informations de la date et de l'heure. Les clés du tableau sont les suivantes :

  • "year" : L'année.
  • "month" : Le mois.
  • "day" : Le jour.
  • "hour" : L'heure.
  • "minute" : Les minutes.
  • "second" : Les secondes.
  • "fraction" : La partie fractionnaire des secondes.
  • "warning_count" : Le nombre de warnings générés lors de l'analyse de la date.
  • "warnings" : Un tableau contenant les warnings générés.
  • "error_count" : Le nombre d'erreurs générées lors de l'analyse de la date.
  • "errors" : Un tableau contenant les erreurs générées.
  • "is_localtime" : Un indicateur indiquant si la date est basée sur l'heure locale.
  • "zone_type" : Le type de fuseau horaire.
  • "zone" : Le fuseau horaire en heures par rapport à UTC.

Exemples pratiques d'utilisation

Voici quelques exemples pratiques d'utilisation de la fonction date_parse() :

Exemple :       Copier le code

	$date = "2023-07-19 10:30:45";
	$result = date_parse($date);
	  
	// Accès aux différentes parties de la date
	$year = $result["year"];
	$month = $result["month"];
	$day = $result["day"];
	$hour = $result["hour"];
	$minute = $result["minute"];
	$second = $result["second"];
	  
	// Affichage des parties de la date
	echo "Année : ".$year."<br>";
	echo "Mois : ".$month."<br>";
	echo "Jour : ".$day."<br>";
	echo "Heure : ".$hour."<br>";
	echo "Minutes : ".$minute."<br>";
	echo "Secondes : ".$second;<br>

Exemple pour la fonction date_parse() avec la date actuelle complète avec milliseconde et informations sur le fuseau horaire :

Exemple :       Copier le code

	<!DOCTYPE html>
	<html lang="fr">
	<head>
		<meta charset="UTF-8">
		<title>Annalyser une date avec la fonction php date_parse()</title>
	</head>
	<body>
	<?php
	$date = new DateTime();
	$formattedDate = $date->format('Y-m-d H:i:s.u e');
	$parsedDate = date_parse($formattedDate);

	// Afficher les différentes informations de la date et de l'heure
	echo "Année : ".$parsedDate['year']."<br>";
	echo "Mois : ".$parsedDate['month']."<br>";
	echo "Jour : ".$parsedDate['day']."<br>";
	echo "Heure : ".$parsedDate['hour']."<br>";
	echo "Minutes : ".$parsedDate['minute']."<br>";
	echo "Secondes : ".$parsedDate['second']."<br>";
	echo "Microsecondes : ".$parsedDate['fraction']*1000."<br>";
	echo "Type de fuseau horaire : ".$parsedDate['zone_type']."<br>";
	echo "Fuseau horaire : ".$parsedDate['tz_abbr'];
	?>
	</body>
	</html>

Il est possible que ce code ne fonctionne pas correctement parce que le fuseau horaire par défaut de votre système n'est pas le même que le fuseau horaire de votre serveur PHP. Pour vérifier le fuseau horaire par défaut de votre système, vous pouvez utiliser la commande suivante :

date -R

Si le fuseau horaire par défaut de votre système est différent du fuseau horaire de votre serveur PHP, vous pouvez modifier le fuseau horaire par défaut de votre serveur PHP en utilisant la fonction date_default_timezone_set(). Par exemple, pour définir le fuseau horaire par défaut de votre serveur PHP sur Europe/Paris, vous pouvez utiliser le code suivant :

date_default_timezone_set('Europe/Paris');

Une fois que vous avez modifié le fuseau horaire par défaut de votre serveur PHP, vous pouvez réessayer le code que vous avez fourni et il devrait fonctionner correctement.

Astuces et conseils d'utilisation

  • Assurez-vous que la date fournie soit au format valide pour une analyse correcte.
  • Utilisez la fonction isset() pour vérifier si une partie de la date existe avant d'y accéder dans le tableau de résultat.
  • La fonction date_parse() est sensible à la configuration locale du serveur, assurez-vous que les paramètres régionaux sont correctement configurés.
  • En cas d'échec de l'analyse de la date, vérifiez le tableau de warnings et d'erreurs pour obtenir des informations supplémentaires sur les éventuels problèmes.
  • Si la date et l'heure ne sont pas au format ISO 8601, il est possible d'utiliser la fonction `date_default_timezone_set()` pour définir le fuseau horaire par défaut.
  • Si la date et l'heure ne sont pas dans un format valide, la fonction `date_parse()` renverra un tableau vide.
  • Si la fonction `date_parse()` ne parvient pas à analyser la date et l'heure, elle renverra un tableau contenant une erreur.

Affichage du tableau complet gènéré par la fònction date_parse()

Le code suivant crée un nouvel objet DateTime, qui représente la date et l'heure actuelles . Ensuite, la méthode format() de l'objet DateTime est utilisée pour formater la date et l'heure selon le format spécifié. Le résultat est stocké dans la variable $formattedDate.

Ensuite, la fonction date_parse() est utilisée pour analyser la date et l'heure contenues dans la variable $formattedDate. La fonction date_parse() renvoie un tableau associatif contenant des informations détaillées sur la date et l'heure analysées.

Exemple :       Copier le code

	$date = new DateTime();
	$formattedDate = $date->format('Y-m-d H:i:s.u e');
	print_r(date_parse($formattedDate));

En exécutant ce code, vous obtiendrez un tableau qui contient différentes clés, telles que 'year', 'month', 'day', 'hour', 'minute', 'second', 'fraction', etc., qui correspondent aux différentes parties de la date et de l'heure analysées :

Array
	(
	[year] => 2023
	[month] => 07
	[day] => 19
	[hour] => 14
	[minute] => 47
	[second] => 29
	[fraction] => 123456
	[warning_count] => 0
	[warnings] => Array()
	[error_count] => 0
	[errors] => Array()
	[is_localtime] =>
	)

Le tableau retourné contient différentes clés, telles que 'year', 'month', 'day', 'hour', 'minute', 'second', 'fraction', etc., qui correspondent aux différentes parties de la date et de l'heure analysées.

Reference de date/heure de PHP


Voir aussi nos tutoriel :

Balise hgroup

Groupes les en-têtes (H1 à H6) des éléments

fonction strtoupper, strtoupper

Renvoie une chaîne en majuscules

:hover

Ajoute un style à un élément lorsque vous passez la souris dessus