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