如何比较日期时间字段之间的经过时间?

时间:2009-08-11 19:57:12

标签: php mysql

在mySql中给出2个datetime类型的字段,如:2009-07-26 18:42:21。在PHP中检索这些值后,如何比较2个时间戳以确定它们之间经过了多少秒?我试过简单地减去它们但是没有用。

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

尝试使用此PHP代码来比较日期;

<?php
$date_difference_in_seconds = abs(strtotime($date_1) - strtotime($date_2));
?>

MySQL存储的日期与PHP使用的格式不同。 PHP存储自Unix Epoch以来经过的秒数,您可以在http://en.wikipedia.org/wiki/Unix_time阅读更多信息。这一行代码只是简单地将两个日期转换为PHP格式,并在绝对值之前相互减去两个日期,以避免产生负面结果。

如果您不想以MySQL返回的格式使用日期,但只是在减去它们之后,请使用直接的SQL查询来节省内存:

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

答案 2 :(得分:0)

将它们选为unix时间戳,然后从另一个

中减去一个
SELECT UNIX_TIMESTAMP(field1) AS time1, UNIX_TIMESTAMP(field2) AS time2