我想让每个用户获得最后一次在线时间,然后检查现在的时间减去上次在线时间是否小于上次登录后的600秒。
我已经做了一些有用的代码,但不是我想要它做的。 我想让它获取每个用户的信息。出于某种原因,此代码更新每个用户信息,具体取决于1个用户我非常肯定。当我将代码中的小于号码更改为大于号码时,即使 我的 用户上次在线时间为1分钟前,它们也会随之改变。
我的代码:
<?php
$user_grab = mysqli_query($con, "SELECT * FROM users");
while($users_ = mysqli_fetch_array($user_grab)) {
foreach($users as $user) {
$last_online = $users_['lastonline'];
if(time() - $last_online < user_session_timeout()) {
echo '
<div class="chat-list-item -available" style="background: rgba(255,255,255,0.1);">
<img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
<div class="chat-list-user">'.$users_['username'].'</div>
<div class="chat-list-excerpt">Online</div>
</div>
';
} else {
echo '
<div class="chat-list-item -offline" style="background: rgba(255,255,255,0.1); padding: 5px;">
<img class="chat-list-avatar" src="'.$users_['profile_picture'].'"/><i class="fa fa-circle chat-list-status"> </i>
<div class="chat-list-user">'.$users_['username'].'</div>
<div class="chat-list-excerpt">Offline</div>
</div>
';
}
}
}
?>
我的user_session_timeout只是读取用户没有更改页面的时间,直到用户被重定向为止
user_session_timeout():
的代码
function user_session_timeout() {
global $con;
$grab_user_timeout_sql = mysqli_query($con, "SELECT user_session_timeout FROM sitesettings");
$row = mysqli_fetch_array($grab_user_timeout_sql);
return $row['user_session_timeout'];
}
我的用户图片全部离线显示
每个用户上次在线时间的证明是不同的
答案 0 :(得分:2)
$users_["lastonline"]
是一个包含日期和时间的字符串。您需要将其解析为数字时间戳,以便从time()
中减去它。
$last_online = strtotime($users_['lastonline']);