Maison >développement back-end >tutoriel php >Comment comparer de manière fiable les dates en PHP, en particulier celles avec des jours sans zéro ?

Comment comparer de manière fiable les dates en PHP, en particulier celles avec des jours sans zéro ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-19 11:47:34742parcourir

How to Reliably Compare Dates in PHP, Especially Those with Non-Zero-Padded Days?

Comparaison de dates en PHP : gestion des jours rembourrés non nuls

Lors de la comparaison de dates en PHP, il est important de considérer que les dates stockées dans le la base de données peut ne pas suivre le format avec zéro (par exemple, "2011-10-2"). Cela peut conduire à des comparaisons incorrectes lors de l'utilisation d'opérateurs de comparaison de dates standard.

Solution utilisant strtotime()

Pour les dates après le 1er janvier 1970, vous pouvez utiliser strtotime( de PHP). ) fonction pour comparer les dates :

$today = date("Y-m-d");
$expire = $row->expireDate; //from database

$today_time = strtotime($today);
$expire_time = strtotime($expire);

if ($expire_time < $today_time) { /* do Something */ }

strtotime() convertit une chaîne représentant une date et une heure en UNIX timestamp, qui représente le nombre de secondes depuis le 1er janvier 1970. Cela permet de comparer les dates en comparant leurs horodatages.

Solution utilisant la classe DateTime

Pour les versions PHP 5.2.0 et supérieur, vous pouvez utiliser la classe DateTime pour travailler avec des dates :

$today_dt = new DateTime($today);
$expire_dt = new DateTime($expire);

if ($expire_dt < $today_dt) { /* Do something */ }

La classe DateTime fournit un ensemble complet de fonctions pour travailler avec les dates et les heures, y compris des opérateurs de comparaison.

Autres considérations

  • Si vos dates sont antérieures au 1er janvier 1970 , vous devrez utiliser une approche différente, comme travailler avec des dates sous forme de chaînes ou utiliser une bibliothèque tierce.
  • Assurez-vous toujours que le format de les chaînes de date dans la base de données et la chaîne de date avec laquelle vous comparez sont cohérentes.

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