Datetime comparaison PHP/Mysql?
J'ai un problème, j'essaie de faire quelque chose comme ça:
si (datetime - date système > 15 minutes) (faux)
si (datetime - système de date <= 15 minutes) (vrai)
Mais je suis totalement perdu. Je ne sais pas comment faire l'opération en PHP.
Im demandant si je peux en choisir qu'datetime à partir de ma base de données et vérifier si cette question est entre les 15 dernières minutes de mon serveur, ma DB est Mysql.
Espère que vous me comprenez! Merci!
Enfin je le fais grâce à Sammitch et les autres, ici, je laisse l'extrait de code:
$now = time();
$target = strtotime($row[1]);
$diff = $now - $target;
//15 minuts 15*60 = 900
if ($diff <= 900) {
$seconds = $diff;
} else {
$seconds = $diff;
}
SELECT NOW()
?PHP:
DateTime::diff()
MySQL: DATE_SUB()
Il y a tout un tas de (relative) les liens sur la droite, sous "Relative" qui peut être de l'aide.
Que DateTime::diff() est parfait je peux obtenir mon système à jour avec php comme un datetime?
OriginalL'auteur Ralsho | 2014-05-22
Vous devez vous connecter pour publier un commentaire.
Si vos dates sont déjà dans MySQL, vous voulez faire la comparaison dans la requête parce que:
Ci-dessous est la forme la plus efficace. Si il y a un indice sur la
date
colonne, il sera utilisé.Docs:
DATE_SUB()
Si vous avez besoin de le faire en PHP:
ou, plus succinctement:
Merci de répondre, mais il a échoué j'obtiens cette erreur: FATAL ERROR: Call to undefined method DateTime::diff() j'ai besoin de faire quelque chose de plus?
Uncaught exception 'Exception' with message 'DateTime::__construct(): Il n'est pas sûr de s'appuyer sur le système de paramètres de fuseau horaire. Vous êtes à la pour utiliser la date.le fuseau horaire ou le date_default_timezone_set() function. Dans le cas où vous avez utilisé une de ces méthodes, et vous obtenez toujours cet avertissement, vous avez probablement mal orthographié le l'identifiant du fuseau horaire. Nous avons choisi le fuseau horaire 'UTC' pour l'instant, mais s'il vous plaît régler la date.le fuseau horaire pour sélectionner votre fuseau horaire
Vous devez appeler
date_default_timezone_set()
comme indiqué dans le message d'erreur, ou un ensemble dedate.timezone
dans votre php.inii réglage de la date.fuseau horaire comme ça: [Date] ; Définit le fuseau horaire par défaut utilisé par les fonctions de date ;date de.timezone = "Europe/Amsterdam", Mais im toujours avoir l'erreur
OriginalL'auteur Sammitch
Vous avez une solution pour MYSQL dans d'autres réponses, une bonne solution pour PHP est:-
Le
getTimeStringFromDB()
est une place de titulaire car je ne sais pas comment vous obtenez votre chaîne de temps. Vous êtes censé le remplacer par la valeur réelle. soupirOriginalL'auteur vascowhite
le plus efficace PHP/MySQL solution combinée est:
OriginalL'auteur AamirR
Essayer cette
OriginalL'auteur caiofior