大家好,我正在使用PHP创建一个在线/离线系统。
当用户登录时,设置会话,并将用户视为在线,我运行一个设置间隔函数,该函数每10秒将time()登录到我的数据库中。
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";
}由于设置时间间隔为10秒,如果$time (当前unix时间戳)大于上次更新的unix时间戳,则用户处于离线状态。
我说的对吗?我该如何实现这个display脱机文件呢?
发布于 2015-02-14 00:45:08
当数据存储在数据库中时,为什么还要用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%的差异)
https://stackoverflow.com/questions/28501369
复制相似问题