PHP MySQL用户在最近10分钟在线

时间:2011-06-24 06:47:05

标签: php mysql date time

我无法获得过去10分钟内在线用户的列表。

$online = mysqli_query($db_server,"SELECT * FROM users WHERE DATE_SUB(NOW(), INTERVAL 10 MINUTE) <= user_last_login") or die("Error: ".mysqli_error($db_server));
while ($users_online = mysqli_fetch_array($online))
{
$users_on = $users_online['user_name'];
echo $users_on;     
}

user last_login是type datetime

2 个答案:

答案 0 :(得分:6)

    $ten_minutes_ago = time() - (60 * 10);

    $datetime = date("Y-m-d H:i:s", $ten_minutes_ago);

    $online = mysqli_query($db_server,"SELECT * FROM users WHERE user_last_login >= '$datetime'") or die("Error: ".mysqli_error($db_server));

    while ($users_online = mysqli_fetch_array($online)) {
        $users_on = $users_online['user_name'];
        echo $users_on;
    }

答案 1 :(得分:1)

我认为你可以直接使用MySQL日期函数,你可以使用以下查询。

SELECT * FROM users WHERE TIMESTAMPDIFF(MINUTE,user_last_login,NOW()) < 10;

有关更多参考资料,请参阅 http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html