大家好我正在使用PHP创建在线/离线系统。
当用户登录时会设置会话并且用户被认为是在线并且我运行一个记录时间()的设置间隔功能;每隔10秒进入我的数据库。
setInterval(function(){
//update time every 10 seconds
$.get("timeupdate.php");
}, 10000);

当我必须检测用户何时离线并且我有点困惑时,我需要在下一阶段取得一些指导。
我是否运行if else语句?
$time = time();
$time2 = $row['time_update'] -> last updated time in my database
if($time > $time2 + 20) {
echo "user is offline";
}
因为如果$time
(当前的unix时间戳)大于上次更新的unix时间戳,那么10秒的setinterval则是用户离线。
答案 0 :(得分:0)
为什么在数据库中的数据时用PHP实现逻辑?如果您正在使用MySQL日期时间....
SELECT last_seen_seconds_ago
, IF($MAXINTERVAL*1.05>last_seen_seconds_ago, 1, 0) AS status
FROM (
SELECT UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(time_update)
AS last_seen_seconds_ago
FROM yourtable
WHERE user='$user') ilv
(允许5%的差异)