Pourquoi ma comparaison de temps PHP échoue-t-elle et comment puis-je y remédier ?

DDD
Libérer: 2024-11-09 13:40:02
original
182 Les gens l'ont consulté

Why Is My PHP Time Comparison Failing, and How Can I Fix It?

Comparer efficacement les temps en PHP

Avec la nécessité de comparer les temps qui se fait constamment sentir, PHP propose diverses méthodes pour faciliter cette tâche. Explorons un cas spécifique où une comparaison utilisant $NovisTime et $ThatTime ne donne pas le résultat attendu.

Le code fourni tente de vérifier si $NovisTime est supérieur ou égal à $ThatTime. Cependant, il rencontre un problème où « ok » n'est pas imprimé malgré l'attente. Pour comprendre le problème, entrons dans les détails :

  • mktime() et date() :Ces fonctions peuvent entraîner des écarts dans les comparaisons de temps en raison de leur traitement des heures, minutes et secondes séparément.
  • Opérateurs de comparaison : Le code utilise l'opérateur de comparaison ">=", qui ne fonctionne que pour les entiers. Cependant, $NovisTime et $ThatTime sont des chaînes représentant le temps.

Solutions améliorées

Pour résoudre ces problèmes, nous pouvons utiliser des méthodes plus précises :

Utilisation de strtotime()

La fonction strtotime() de PHP convertit une chaîne de temps comme $ThatTime en un horodatage UNIX. Cette approche simplifie la comparaison :

$ThatTime = "14:08:10";
if (time() >= strtotime($ThatTime)) {
  echo "ok";
}
Copier après la connexion

Considération du fuseau horaire avec DateTime

La classe DateTime vous permet d'effectuer des comparaisons de temps tout en considérant les fuseaux horaires. Ceci est particulièrement utile lorsque vous traitez des heures provenant de différents endroits :

$dateTime = new DateTime($ThatTime);
if ($dateTime->diff(new DateTime)->format('%R') == '+') {
  echo "OK";
}
Copier après la connexion

En tirant parti de ces solutions, vous pouvez comparer les heures avec précision et commodité en PHP, répondant ainsi efficacement à vos besoins spécifiques.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal