使用 PHP/mySQL,用户每天被授予一个指向其成员帐户的整数点。我将用于确定是否应授予积分的数据是这些 mysql 字段:创建日期(时间戳)和上次登录(UNIX 时间)。
授予这些积分的程序是在用户登录时确定的。我的问题是,确定自上次登录以来已经过去了多少天的最有效方法是什么?其次,如果用户每天都登录,我如何确定是否已经过了 24 小时,是否要授予积分?过去的天数等于给定的分数(每天 1)。
目前我正在使用这段代码:
/*
** Updates Points based on days since last visit
*/
static function UpdatePoints($username)
{
$getlog = System::$mySQL->Select("lastLog, creation FROM users WHERE username='$username'");
$log = System::$mySQL->Fetch($getlog);
$offset = (TIME() - $log['lastLog']) / 86400; // 24hrs
$lastlog = round($offset); // in days
if($lastlog > 0)
{
System::$mySQL->Update("users SET points=points+".$lastlog." WHERE username='$username'");
}
}
除了标记,很明显我的代码是短视的。如果用户每天登录一次,他们不会获得积分。因此,我还必须使用“创建日期”字段来确定这样做的正确方法。我今天实在想不通,有什么建议吗?谢谢。