Comment comparer deux fois en PHP
J'ai eu deux fois dans le format de 7:30:00 et 22:30:00 stockées dans les variables $resttimefrom
et $resttimeto
respectivement.
Je veux vérifier si l'heure actuelle est entre ces deux valeurs. Je vérifie avec le code
$time = date("G:i:s");
if ($time > $resttimefrom and $time < $resttimeto ){
$stat = "open";
} else {
$stat = "close";
}
Mais je suis toujours un $stat à Proximité. Ce qui peut provoquer cela?
Grâce ses d'une simple logique!
double possible de PHP - Comparer Date
C'est parce que $resttimefrom et $resttimeto ne sont pas définis
double possible de PHP - Comparer Date
C'est parce que $resttimefrom et $resttimeto ne sont pas définis
OriginalL'auteur Rajasekar | 2010-08-04
Vous devez vous connecter pour publier un commentaire.
Une façon intelligente de le faire est de supprimer les": "à partir de vos dates.
strtotime
et cela fonctionne très bien.OriginalL'auteur Alfwed
vous pouvez essayer d'utiliser
strtotime
puis vérifier
j'espère que cela peut vous aider..
OriginalL'auteur Zuber Surya
Essayer de reformater en quelque chose que vous pouvez comparer comme ça. Les chiffres, par exemple:
OriginalL'auteur Sebs
De la comparaison de chaînes de caractères.
Convertir l'Heure des Chaînes d'horodateurs avec
strtotime()
.Puis comparer les contre
time()
.OriginalL'auteur Gordon
OriginalL'auteur quantumSoup
Il suffit de convertir vos dates pour un Timestamp Unix, de les comparer, vous avez vos résultats! Il pourrait ressembler à quelque chose comme ceci:
OriginalL'auteur user395702
La
date
fonction retourne une chaîne de caractères, de sorte que la comparaison que vous faites serait une chaîne de la comparaison, de sorte 7:30 serait plus de 22:30Il serait beaucoup mieux d'utiliser
mktime
, qui sera de retour d'un timestamp Unix (nombre entier) de sorte qu'il serait une meilleure comparaisonhttp://php.net/mktime
Lorsqu'il est appelé sans arguments,
mktime()
jette unE_STRICT
avis. Aussi, votre code pourrait potentiellement conduire à des résultats faux lorsque l'heure d'été est un facteur.mktime
a un drapeau pour indiquer l'heure d'été, mais à partir de PHP5.3 il jette également unE_DEPRECATED
avis si leis_dst
paramètre est utilisé.OriginalL'auteur Jonathon Bolster
L'astuce pour la manipulation et la comparaison des dates et des heures dans PHP pour stocker des valeurs de date/heure dans une variable de type entier et d'utiliser le mktime(), date() et la fonction strtotime (). L'entier repesentation de date/heure est le nombre de secondes depuis minuit, 1970-Jan-1, qui est appelé le 'époque'. Une fois votre date/heure est un entier formulaire, vous serez en mesure efficace de le comparer à d'autres dates qui sont également dans la forme entière.
Bien sûr, puisque vous aurez plus de chances de recevoir des valeurs de date/heure à partir de la page des requêtes de base de données et les requêtes select, vous aurez besoin de convertir votre chaîne de date/heure en entier avant de faire une quelconque comparaison ou l'arithmétique.
En supposant que vous êtes sûr que le $resttimefrom et $resttimeto variables contiennent correctement formaté temps, vous pouvez utiliser la fonction strtotime() de la fonction de convertir votre chaîne de temps en un entier. la fonction strtotime() prend une chaîne de caractères qui est formaté comme une date, et la convertit le nombre de secondes depuis l'epoch.
Côté remarque: la fonction strtotime() renvoie toujours une date complète dans la forme entière. Si votre chaîne n'a pas de date, seulement un temps, la fonction strtotime() retourne la date du jour ainsi que le temps que vous avez donné dans la chaîne. Ce n'est pas important pour vous, si, parce que les deux dates retourné par la fonction strtotime() auront la même date et en comparant les deux variables ont l'effet désiré, de comparer les deux fois que les dates d'annuler les uns les autres.
Lorsque vous comparez les deux entiers gardez à l'esprit que le plus tôt de la date/heure est grande, plus sa valeur entière sera. Donc, si vous voulez voir si $time_from est antérieure à $time_to, vous avez ceci:
Maintenant pour comparer une date/heure avec le système actuel, date/heure, il suffit d'utiliser mktime() sans paramètres pour représenter la date/heure actuelle:
OriginalL'auteur emurano
OriginalL'auteur Sachin R
OriginalL'auteur Raj Kumar
Comme le Colonel des Éclats d'obus Dit que je suis en train de faire par la conversion de tous les temps en secondes et de le comparer avec le temps actuel total de secondes
OriginalL'auteur Rajasekar