首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较datetime字段之间的运行时间?

问如何比较datetime字段之间的运行时间?
EN

Stack Overflow用户
提问于 2009-08-11 19:57:12
回答 3查看 874关注 0票数 1

在mySql中给出两个datetime类型的字段,如下所示:2009-07-26 18:42:21。在PHP中检索到这些值之后,我如何比较这两个时间戳来计算出它们之间经过了多少秒?我试着简单地减去它们,但这不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-11 20:02:16

代码语言:javascript
复制
$ts1 = strtotime('2009-07-26 18:42:21');
$ts2 = strtotime('2009-07-26 18:42:20');

$elapsedSeconds = $ts1 - $ts2; // = 1
票数 4
EN

Stack Overflow用户

发布于 2009-08-11 20:02:39

尝试下面的PHP代码来比较日期;

代码语言:javascript
复制
<?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查询来节省内存:

代码语言:javascript
复制
SELECT TIME_TO_SEC(TIME_DIFF(date_1, date_2)) AS date_difference_in_seconds FROM table;
票数 1
EN

Stack Overflow用户

发布于 2009-08-11 20:02:33

选择它们作为unix时间戳,然后从另一个时间戳中减去一个

代码语言:javascript
复制
SELECT UNIX_TIMESTAMP(field1) AS time1, UNIX_TIMESTAMP(field2) AS time2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1262556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档