目前,我的数据库中有一个表来存储与每个用户相关的信息,每行代表一个用户。我希望在其中添加两列,一列存储用户登录时的最近时间,另一列存储用户注销时的最近时间。
由于我对MySQL和PHP比较陌生,我想知道在MySQL中存储当前时间的最简单方法是什么?每次用户登录或注销时,我都希望使用当前时间更新相应的登录/注销时间列。
我可以使用问题1中描述的方法比较两个时间戳吗?我想比较上次登录时间和上次登出时间,以确定用户当前是否登录。
谢谢。
答案 0 :(得分:0)
您应该将列类型设置为datetime
,并在用户登录/注销时使用NOW()函数更新这些列:
update users set login_datetime = now() where user_id = :userId
update users set logout_datetime = now() where user_id = :userId
在PHP中,您可以使用DateTime对象轻松获取这些列并进行比较或执行任何操作:
$userLoggedInAt = new DateTime($row['login_datetime']);
$userLoggedOutAt = new DateTime($row['logout_datetime']);
$loginTime = $userLoggedOutAt->diff($userLoggedInAt);
echo 'The user was logged in for ' . $loginTime->format('%i minutes');
虽然我不明白为什么你会使用这种方法,你可以比较这两个对象来检查用户是否登录:
if ($userLoggedOutAt < $userLoggedInAt) {
echo 'The user is logged in';
}
问题:使用您的方法,如果用户关闭浏览器,您将如何设置退出时间?