我想在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)