0

我有一个功能可以向我展示今天访问过我网站的用户,MYSQL 数据库中有一个名为“lastvisit”的字段。

我曾经使用 MYSQL 时间戳,但是服务器时间与我的本地时间不同,因此无法正常工作。

我知道在 PHP 中设置时区并将日期和时间作为 VARCHAR 存储在数据库中,例如:

date_default_timezone_set('UTC');
$visittime = date('jS M Y H:i A');

//Update timestamp to show latest visit
$sql="UPDATE users SET lastvisit='$visittime' where email ='$email' ";


29th Jan 2013 22:29 

如何编写一个 PHP 函数来显示今天在线的用户,以及过去 24 小时内在线的用户数量。

4

1 回答 1

0

MySQL如果您假设要计算 distinct ,这将完成这项工作email。(如果您可以使用用户的主键,那就更好了。

这将返回昨天和今天在线的用户总数。

SELECT  DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i')), 
        COUNT(DISTINCT email)
FROM    users
WHERE   DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i')) BETWEEN CURDATE + INTERVAL -1 DAY AND CURDATE()
GROUP   BY DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i'))
于 2013-01-30T11:20:08.910 回答