PHP中时间戳(以分钟为单位)之间的差异

时间:2016-10-13 05:21:12

标签: php date

我希望在PHP中以分钟为单位格式化Y-m-d H:i:s的2个时间戳。 使用的代码是,

$currentDate = date('Y-m-d H:i:s');
$userLastActivity = date($date);
$timeLapse = (($currentDate - $userLastActivity)/60);

这里,$date是从数据库中获得的。 输出中$timeLapse的值为0。请帮忙。

3 个答案:

答案 0 :(得分:2)

尝试使用unix时间戳。实际上,它测量从1970年1月1日开始的秒数时间,并且比php对象更容易使用和理解。

$currentTimestamp = new DateTime()->getTimestamp();
$userLastActivity = date($date)->getTimestamp();
$timeLapse = (($currentDate - $userLastActivity)/60);

您也应该将时间保存为服务器上的时间戳,在这种情况下,您可以直接使用$ date作为数字,而无需转换。而且,因为它是通用的,你可以将其传递给javascript或任何其他语言,而无需担心转换

答案 1 :(得分:0)

使用strtotime将文本日期时间解析为Unix时间戳,并从$userLastActivity中减去$currentDate并除以60

看看这是否有帮助 -

<?php
$currentDate = strtotime(date('Y-m-d H:i:s'));
$date = "2016-10-11 02:40:50";
$userLastActivity = strtotime($date);
echo round(abs($currentDate - $userLastActivity) / 60). " minutes";
?>

有关详情:strtotime

答案 2 :(得分:-2)

首先更改这两行,因为我不认为将日期除以60会很好。

$currentDate = time();
$userLastActivity = strtotime($date);

这样你就有时间戳而不是日期(字符串)