检查用户是否在过去24小时内登录过


Checking if the user has logged in the last 24 hours

我目前正在我的网站上开发一个"用户奖励"系统,用给定的虚拟货币(例如积分)奖励活跃用户

我想不出一个方法来完成那件事。

我知道我必须比较时间戳,但我不知道什么时候应该创建基本时间戳,我将使用它作为计算的基础。我认为我可能没有正确地解释我的问题,所以我将以简短的方式说:我如何检查用户是否在过去24小时内登录。何时创建创建我将用于计算的时间戳。

提前感谢你所有的回答。

我的users表中有一个last_activity

我将使用一些简写:

OnRegister(取消第一次登录的即时积分):

user->lastPoints = now();

OnLogin:

if (user->lastPoints - now > 24h)
{
    if (user->lastPoints - now < 48h)
    {
        user->rewardPoints();
    }
    user->lastPoints = now();
}

希望这就是你要找的

在不知道应用程序结构的情况下,很难做到具体,但是偶尔可以更新用户表中的'last_activity'(或类似的)字段。然后检查last_activity值是否大于24小时。

添加一些逻辑,使last_activity仅每15分钟左右更新一次,并且您不会在每次页面加载时进行额外的DB写入。

您只需存储每次用户登录的时间戳。但如果你想检查他们是否在线,无论他们是否需要登录,你都必须在每个页面上实现时间戳的更新。您还应该将最后更新时间存储在用户的cookie中,这样您就不会在每次页面加载时更新,而是每十分钟更新一次。