PHP时间戳,今天在线显示用户

时间:2013-01-30 11:15:05

标签: php mysql timestamp

我有一个功能工作,向我显示今天访问过我网站的用户,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小时内在线用户的数量。

1 个答案:

答案 0 :(得分:0)

如果您要在MySQL中进行此操作,假设您要计算不同的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'))