有谁能告诉我为什么这不起作用?在我的数据库lastactive
是2013-12-10 16:15:12
,每次用户刷新我网站上的任何页面时都会更新。
我选择它并将其设置为变量:
$lastactive = $row[5];
这是我认为应该工作的地方,但事实并非如此。使用10秒进行测试。
if(time() > $lastactive+10){
print('<div id="user_online_status" style="color: #aaa;">[OFFLINE]</div>');
}
else if(time() < $lastactive+10){
print('<div id="user_online_status">[ONLINE]</div>');
}
答案 0 :(得分:4)
您正在将unix时间戳与MySQL日期时间字符串进行比较。在比较两者之前,您需要将其转换为unix时间戳:
$lastactive = strtotime($row[5]);
答案 1 :(得分:3)
将 SELECT 语句替换为:
SELECT lastOnline FROM user
类似......
SELECT UNIX_TIMESTAMP(lastOnline) FROM user
就是这样。您当前正在针对UNIX时间戳检查日期字符串。
答案 2 :(得分:2)
我没有看到检查时间的好主意。
如果用户没有刷新页面,他让页面打开然后去吃饭怎么办? 。他会退出?这将是无聊的。
我想更好的是使用卸载
$(window).unload(function() {
// Send an Ajax request to logout.php
});
答案 3 :(得分:2)
如果用户没有刷新页面,您可以使用cron在服务器上进行检查。
$limit = $userOnline+60; // cron set to run every minute
if($userOnline < $limit)
$userStatus = "offline";
else
$userStatus = "online";