我希望在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。请帮忙。
答案 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);
这样你就有时间戳而不是日期(字符串)