PHP 统计APP用户在线时长,TP项目可直接使用
php吧
全部回复
仅看楼主
level 8
/**
* 用户在线时长统计
*/
public function onlineTime()
{
$configTime = 1;//分
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);
}
}
2024年04月23日 00点04分 1
1