首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php使用setinterval检测用户是否离线?

php使用setinterval检测用户是否离线?
EN

Stack Overflow用户
提问于 2015-02-13 22:04:42
回答 1查看 239关注 0票数 0

大家好,我正在使用PHP创建一个在线/离线系统。

当用户登录时,设置会话,并将用户视为在线,我运行一个设置间隔函数,该函数每10秒将time()登录到我的数据库中。

代码语言:javascript
复制
setInterval(function(){

//update time every 10 seconds
$.get("timeupdate.php");

}, 10000);

我需要一些方向,请在我的下一阶段,当我必须检测时,用户离线,我有点困惑。

我要运行if else语句吗?

代码语言:javascript
复制
$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脱机文件呢?

EN

回答 1

Stack Overflow用户

发布于 2015-02-14 00:45:08

当数据存储在数据库中时,为什么还要用PHP实现逻辑呢?如果您使用的是MySQL日期时间....

代码语言:javascript
复制
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%的差异)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28501369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档