我目前正在我的网站上开发一个"用户奖励"系统,用给定的虚拟货币(例如积分)奖励活跃用户
我想不出一个方法来完成那件事。
我知道我必须比较时间戳,但我不知道什么时候应该创建基本时间戳,我将使用它作为计算的基础。我认为我可能没有正确地解释我的问题,所以我将以简短的方式说:我如何检查用户是否在过去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中,这样您就不会在每次页面加载时更新,而是每十分钟更新一次。