В настоящее время я пытаюсь отобразить на своем веб-сайте онлайн-администраторов. Я хотел бы, чтобы они отображались как онлайн в течение 15 минут, пока, если в течение этого времени не будет обнаружено никаких действий, они будут отображаться как офлайн.
Код, который у меня есть, ниже, однако с < 60 я не понимаю, это секунды или минуты и т. д., Поэтому не могу определить, какие будут 15 минут. $rowAdmins['activity'] хранится как временная метка unix.
Код:
<?php
$findAdmins = $odb->prepare("SELECT * FROM `users` WHERE `rank` = '1'");
$findAdmins -> execute(array($_SESSION['ID']));
while($rowAdmins = $findAdmins->fetch(PDO::FETCH_BOTH)){
$diffOnline = time() - $rowAdmins['activity'];
$countOnline = $odb->prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username AND :diffonline < 60");
$countOnline->execute(array(':username' => $rowAdmins['username'], ':diffonline' => $diffOnline));
$onlineCount = $countOnline->fetchColumn(0);
if ($onlineCount == "1"){
echo '<div>'. $rowAdmins['username'] .' <img src = "/user-online.png" alt = "'. $rowAdmins['username'] .' is online" title = "'. $rowAdmins['username'] .' is online"></img></div>';
} else {
echo '<div>'. $rowAdmins['username'] .' <img src = "/user-offline.png" alt = "'. $rowAdmins['username'] .' is offline" title = "'. $rowAdmins['username'] .' is offline"></img></div>';
}
}
?>
Для второго запроса нет оснований. Вобще if ($diffOnline < 900)






Временные метки Unix - секунды. 15 минут - 900 секунд.