您好,很高兴回答您的问题,希望我的回答能帮助到您,蟹蟹
用户在线时长计算,首先,用户登录成功把登录时间以及用户id保存在session中
当用户退出时,当前时间减去登录时间就是用户在线时长
//用户登录public function dologin(){
$adminname = I("param.adminname","","trim")//用户名
$password = I("param.password","","trim")//密码
$where = "adminname = '{$adminname}' and password = md5('{$password}')"
$data['login_time'] = time()
$is_find = M("users_admin")->where($where)->find()
if($is_find){
$result = M("users_admin")->where($where)->setField($data)
if ($result){
$_SESSION['uid'] = $is_find['id']
$_SESSION['login_time'] = $data['login_time']
echo("登录成功")
}
}
} //用户退出代码
public function logout(){
$login_time = $_SESSION['login_time']
$now = time()
$line_time = $now-$login_time
$result = M("users_admin")->where("id = ".$_SESSION['uid'])->setField('line_time',$line_time)
session(null)
echo("成功退出")
}
这个需要写判断语句,一条SQL语句很难写出来。可用存储过程。需如:
先得到在线时候一次在线时间多长
logintime 2013-1-1 12:00:00 logouttime 2013-1-5 12:00:00
可以先到得 logouttime - logintime = 总的在线时长
判断 总的在线时长 得到 如果大于24 或者 得到 2013-1-2 0:00:00 - logintime 小于 总的在线时长
2013-1-2 0:00:00 - logintime = 今天在线时长
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)