comment soustraire deux dates et heures pour obtenir la différence
j'ai envoyé un email lorsqu'un enregistrement de l'utilisateur e-mail contient un lien qui est devenu invalide après six heures
ce que je m le faire lorsqu'un message électronique est envoyé je l'ai mise à jour de la db avec le champ emailSentDate de type "datetime"
maintenant, je suis au courant de la date et de l'heure et a fait à la même formiate comme il est dans la bd maintenant, je veux savoir que ces deux dates et de l'heure differenc de 6 heures ou pas pour que je puisse faire un lien invalide, mais je ne sais comment le faire, ce
mon code est ressembler à ce que je m en utilisant valeur codée en dur pour db juste pour exemple
$current_date_time=date("Y-m-d h:i:s");
$current=explode(" ",$current_date_time);
$current_date=$current[0];
$current_time=$current[1];
$db_date_time="2010-07-30 13:11:50";
$db=explode(" ",$db_date_time);
$db_date=$db[0];
$db_time=$db[1];
je ne sais pas comment procéder svp aidez
OriginalL'auteur user403269 | 2010-07-30
Vous devez vous connecter pour publier un commentaire.
imprime
2 days, 4 hours, 44 minutes
voir http://docs.php.net/datetime.diff
edit: Mais vous pouvez aussi déplacer le problème plus à la base de données secondaires, par exemple en stockant l'expiration de la date/heure dans le tableau, puis faire une requête comme
... WHERE key='7gedufgweufg' AND expires<Now()
De nombreux sgbdr raisonnable de/un bon support de date/heure de l'arithmétique.
diff()
méthode...C'est le droit. Le manuel dit
(PHP 5 >= 5.3.0)
qui a été publié en juin 2009 😉Je sais, c'est fou :-/ je devrais changer mon hébergeur, je suppose... j'ai 5.2.x
OriginalL'auteur VolkerK
Ce que vous pouvez faire est de convertir à la fois de vos dates de Unix epoch times, qui est l'équivalent en nombre de secondes depuis minuit, le 31 décembre 1969. De ce que vous pouvez facilement en déduire la quantité de temps écoulé entre les deux dates. Pour ce faire, vous pouvez soit utiliser mktime() ou la fonction strtotime()
Le meilleur de tous.
OriginalL'auteur Adam
$hoursDiff = ( time() - strtotime("2010-07-30 13:11:50") )/(60 * 60);
hey c'est la création de problème pour le jour même suppose que je dois trouver de la différence de, le même jour, il en résulte une valeur négative
OriginalL'auteur ajile
Je préfère travailler avec un timestamp: Enregistrer la valeur qui est retournée par "time ()" "savedTime" de votre base de données (c'est un timestamp en secondes). Soustraire ce nombre de "time()" lorsque vous vérifiez vos six heures.
if ((time() - savedTime) > 6 * 3600)
//more than 6h ago
ou
"SELECT FROM table WHERE savedTime < " . (time() - 6 * 3600)
OriginalL'auteur Select0r
Cela pourrait être la solution à votre problème -> Comment calculer la différence entre deux dates à l'aide de PHP?
OriginalL'auteur Aditya