PHP 统计APP用户在线时长,TP项目可直接使用

/**
 * 用户在线时长统计
 */
public function onlineTime()
{
    $configTime = 10;//分
    if (isset($GLOBALS['config']['user']['online_time'])) {
        $configTime = $GLOBALS['config']['user']['online_time'];
    }

    $user = $GLOBALS['user'];
    if ($user['user_id']) {
        $where = ['user_id' => $user['user_id'], 'online_date' => date('Ymd')];
        $online = model('UserOnline')->where($where)->find();
        if (!$online) {
            model('UserOnline')->insert([
                'user_id' => $user['user_id'],
                'online_date' => date('Ymd'),
                'online_time' => 0,
            ]);
            $online = model('UserOnline')->where($where)->find();
        }

        $seenKey = 'app-user-last-seen';
        $lastSeenTime = Cache::get($seenKey . $user['user_id']);
        $now = time();
        if ($lastSeenTime != null) {
            $time = $online['online_time'] + ($now - $lastSeenTime);
            $online->save(['online_time' => $time]);
        }

        Cache::set($seenKey . $user['user_id'], $now, $configTime * 60);
    }
}

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值