Maison >développement back-end >tutoriel php >Comment comparer des dates avec un format 'd_m_y' personnalisé en PHP ?

Comment comparer des dates avec un format 'd_m_y' personnalisé en PHP ?

DDD
DDDoriginal
2024-12-29 16:31:11454parcourir

How to Compare Dates with a Custom 'd_m_y' Format in PHP?

Comparaison de dates en PHP avec un format personnalisé

Question :

Comment puis-je comparer deux dates en PHP au format '03_01_12' et '31_12_11' ?

Tentative 1 :

Le code fourni :

$date1 = date('d_m_y');
$date2 = '31_12_11';
if (strtotime($date1) < strtotime($date2))
    echo '1 is small ='.strtotime($date1), ','.$date1;
else
    echo '2 is small ='.strtotime($date2), ','.$date2;

Explication :

Le code ci-dessus tente de comparer les dates à l'aide de la fonction strtotime(), mais cela ne fonctionne pas car il utilise le format de date par défaut du système pour la conversion, qui n'est pas le format personnalisé utilisé dans la date chaînes.

Réponse :

Pour comparer correctement les dates avec le format personnalisé donné, vous pouvez utiliser la méthode DateTime::createFromFormat(). Voici un exemple de code modifié :

$format = "d_m_y";
$date1  = \DateTime::createFromFormat($format, "03_01_12");
$date2  = \DateTime::createFromFormat($format, "31_12_11");

var_dump($date1 > $date2);

Dans ce code :

  • La variable $format définit le format de date personnalisé utilisé dans les chaînes de date.
  • DateTime ::createFromFormat(...) crée deux objets DateTime à partir des chaînes de date en utilisant le format spécifié.
  • Le > L'opérateur compare les objets DateTime en fonction de leurs horodatages, qui sont automatiquement convertis au même format.
  • La fonction var_dump() affiche le résultat de la comparaison dans un format lisible par l'homme.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn