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


Difference between timestamps in minutes in PHP

我想在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。请帮助。

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

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

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

使用strtotime将文本日期时间解析为Unix时间戳,用$currentDate减去$userLastActivity再除以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

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

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

这样你就有了时间戳而不是日期(string)