我在php中创建了一个简单的在线用户脚本,到目前为止它就是这样。
$online_users = time() - 900;
$q = $dbc -> prepare("SELECT * FROM accounts WHERE online > ? ORDER BY username");
$q -> execute(array($online_users));
$result = $q -> rowCount();
在每个成员的页面上,每次用户点击时,“在线”行都会使用当前时间()进行更新。
如你所见$ online_users,是当前时间减去15分钟。然后我可以看出他们是否在过去的15分钟内在网站上活跃,并做了一段时间的循环来解决所有问题。
我的问题是,我怎样才能找出他们没有活动的确切时间(以秒为单位),这样我就可以显示一条信息;
'最近有效45秒前'或'最后有效14分钟前'
我希望我已经很好地解释了这一点,并且谢谢:)
答案 0 :(得分:1)
我想我可能误解了你的问题,但这应该就像从当前时间减去最后一次活动时间(在你的数据库中)一样简单。
$inactive_time = time() - last_activity;
然后,您可以通过查看“$ inactive_time”是否大于“60”来确定是否显示“秒”或“分钟”。
答案 1 :(得分:1)
试试这个:
$resulted_account = $q->fetchAll();
foreach($resulted_account as $account) {
$inactive_time = $account['online'] - $online_users;
if ($inactive_time < 60) {
echo "Last active $inactive_time seconds ago";
} else {
echo "Last active" .date("i", $inactive_time) . "minutes ago";
}
}