PHP Vérifier si le timestamp est à moins de 30 minutes
J'obtiens une liste d'éléments à partir de ma base de données, chacun a une CURRENT_TIMESTAMP que j'ai changé en "x minutes" avec l'aide de timeago. Donc, c'est de travailler très bien. Mais le problème est que je veux aussi un "NOUVEAU" bannière sur les éléments qui sont à moins de 30 minutes. Comment puis-je prendre l'généré timestamp (par exemple: 2012-07-18 21:11:12) et de dire si il est à moins de 30 minutes de l'heure actuelle, alors l'écho de la "NOUVELLE" bannière sur ce point.
Je trouve intéressant de voir comment personne ne suggère l'utilisation de time()-30*60, je me demande si je suis le seul à être habitué à travailler avec des timestamps unix comme des entiers directement.
OriginalL'auteur user1511331 | 2012-07-18
Vous devez vous connecter pour publier un commentaire.
Utilisation la fonction strtotime(à 30 minutes) et ensuite voir si votre ligne timestamp est plus que cela.
Exemple:
Je suis en utilisant la fonction strtotime() deux fois ici pour obtenir des timestamps unix pour votre mysql date, puis à nouveau pour obtenir ce que l'horodatage était il y a 30 minutes. Si le timestamp à partir de 30 minutes, il est plus grand que le timestamp de l'mysql record, alors il doit avoir été créé plus de 30 minutes.
+1. Merci. C'est une meilleure façon de faire ce que ce que je faisais. Je suis actuellement n':
if($post_date < (time()-600))
mais en utilisantstrtotime()
mais de le mettre en anglais normal, c'est un peu plus facile que de trouver le nombre de secondes à soustraire 🙂Vous devez accepter cette réponse (voir la section Comment accepter une réponse travailler?) car cela vous a aidé.
ne fonctionne pas pour moi...
Assurez-vous que votre $mysql_timestamp est un format de date que la fonction strtotime() comprend.
OriginalL'auteur Mike Flynn
Essayer quelque chose comme cela, à l'aide de PHP DateTime objet:
Edit: Mike est bon, j'ai oublié que, pour quelque raison que ce soit, seulement
%a
renvoie en fait le total de son type (dans ce cas, les jours). Tous les autres sont pour l'affichage de l'heure de mise en forme. J'ai étendu le ci-dessus fonctionnent réellement.$diff->format("i")
sera de 29.$interval = new DateInterval('PT1H29M'); echo $interval->format('%i minutes');
échos "29 minutes"J'ai oublié à ce sujet, et je suppose que c'est ce que je peux avoir pour pas fait le test du code. J' a de test cette fois et il fonctionne comme prévu. =)
OriginalL'auteur Crontab
Vous pouvez faire comme ça aussi -
pour vérifier la dernière mise à jour de temps est de 30 minutes de la vieille ou pas
OriginalL'auteur Bandana Sahu