Comparer des dates en PHP : un guide détaillé
Lorsque vous travaillez avec des dates en PHP, vous pouvez rencontrer le besoin de comparer deux dates pour déterminer leur ordre relatif. Cette tâche peut être difficile, surtout lorsque les dates sont présentées dans un format non conventionnel tel que « 03_01_12 » et « 31_12_11 ».
Solution : Utiliser DateTime::createFromFormat
Pour comparer avec précision des dates dans un format inhabituel, nous pouvons utiliser la fonction DateTime :: createFromFormat. Cette fonction nous permet de spécifier une chaîne de format personnalisée pour analyser les valeurs de date en objets DateTime.
Le code suivant montre comment comparer les dates dans le format donné :
$format = "d_m_y"; $date1 = \DateTime::createFromFormat($format, "03_01_12"); $date2 = \DateTime::createFromFormat($format, "31_12_11"); var_dump($date1 > $date2);
Les résultats de cette approche dans une valeur booléenne indiquant si $date1 est supérieur à $date2. Vous pouvez utiliser l'instruction var_dump à des fins de débogage ou la remplacer par une logique appropriée dans votre application.
Pièges de strtotime()
Le code fourni dans la question a tenté d'utiliser strtotime(), qui est généralement utilisé pour convertir une chaîne de date lisible par l'homme en un horodatage Unix. Cependant, strtotime() attend les dates dans un format standardisé et ne peut pas gérer les formats personnalisés comme « 03_01_12 ». L'utilisation de DateTime::createFromFormat surmonte cette limitation en vous permettant de spécifier le format exact des dates analysées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!