2009-08-11 6 views
1

Étant donné 2 champs de type datetime dans mySql qui ressemblent à: 2009-07-26 18:42:21. Après avoir récupéré ces valeurs en PHP, comment puis-je comparer les 2 horodatages pour savoir combien de secondes se sont écoulées entre eux? J'ai essayé simplement de les soustraire mais cela n'a pas fonctionné.Comment comparer le temps écoulé entre les champs datetime?

Répondre

4
$ts1 = strtotime('2009-07-26 18:42:21'); 
$ts2 = strtotime('2009-07-26 18:42:20'); 

$elapsedSeconds = $ts1 - $ts2; // = 1 
0

les sélectionner comme timestamp unix et juste Soustraire un de l'autre

SELECT UNIX_TIMESTAMP(field1) AS time1, UNIX_TIMESTAMP(field2) AS time2 
1

Essayez ce code PHP pour comparer les dates; Les dates que MySQL stocke sont dans un format différent de celui utilisé par PHP. PHP stocke les dates en secondes écoulées depuis l'Epoque Unix, dont vous pouvez lire plus à propos à http://en.wikipedia.org/wiki/Unix_time. Cette ligne de code convertit simplement les deux dates au format PHP, et soustrait les deux dates l'une de l'autre avant d'annuler la valeur afin d'éviter des résultats négatifs.

Si vous ne souhaitez pas utiliser la date dans le format que MySQL retourne du tout, mais sont tout simplement après les soustraire, utilisez une requête SQL en ligne droite au lieu de conserver la mémoire:

SELECT TIME_TO_SEC(TIME_DIFF(date_1, date_2)) AS date_difference_in_seconds FROM table; 
Questions connexes