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