在mySql中给出两个datetime类型的字段,如下所示:2009-07-26 18:42:21。在PHP中检索到这些值之后,我如何比较这两个时间戳来计算出它们之间经过了多少秒?我试着简单地减去它们,但这不起作用。
发布于 2009-08-11 20:02:16
$ts1 = strtotime('2009-07-26 18:42:21');
$ts2 = strtotime('2009-07-26 18:42:20');
$elapsedSeconds = $ts1 - $ts2; // = 1发布于 2009-08-11 20:02:39
尝试下面的PHP代码来比较日期;
<?php
$date_difference_in_seconds = abs(strtotime($date_1) - strtotime($date_2));
?>MySQL存储的日期格式与其使用的格式不同。PHP以秒为单位存储自Unix时代以来经过的日期,您可以在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;发布于 2009-08-11 20:02:33
选择它们作为unix时间戳,然后从另一个时间戳中减去一个
SELECT UNIX_TIMESTAMP(field1) AS time1, UNIX_TIMESTAMP(field2) AS time2https://stackoverflow.com/questions/1262556
复制相似问题