Laravel选择5分钟之前的记录?

17 浏览
0 Comments

Laravel选择5分钟之前的记录?

我有一个Laravel应用程序,在其中使用心跳定期检查用户是否登录,每3秒钟一次(演示目的,实际上是5分钟)。对于每个心跳,我会检查用户的上次活动时间是否也是5分钟前。如果是的话,就登出他们。

这是我的代码:

$result = DB::table('db_user')->where('id_user','=',Session::get('id_user'))->where('last_activity','>=',"now() - interval 5 minute")->get();
    if(!empty($result)) 
        return Redirect::to('/logout');
    else
        return Response::json('still-alive');

我的问题是,这不起作用。如果我将操作数更改为<=,它会在5分钟之前立即将我登出;如果操作数是>=,即使超过了5分钟,它也不会将我登出。有人可以解释为什么吗?

-编辑-

感谢所有的回答,我通过修改我的代码解决了我的问题:

$result = DB::table('db_user')->where('id_user','=',Session::get('id_user'))->first();
    if(!empty($result)) 
        if(strtotime($result->last_activity) < strtotime("-5 minutes"))
            return Redirect::to('/logout');
        else 
            return Response::json('still-alive');
    else
        return Response::json('no-record');

0