• 签到功能中关于时间的判断


    //签到 0(签到失败)1(签到成功)2(断签)3已签到
        public function sign($id){
            $connect=Yii::$app->db;
            $arr_sign = $connect->createCommand("SELECT * FROM user where user_id=$id")->queryOne();
            //当天凌晨0点
            $timeToday = mktime('0','0','0',date('m'),date('d'),date('y'));
            //当前时间
            $time=time();
            //当前时间差
            $diff=$time-$timeToday;
            //上一次签到与凌晨时间差
            $lastdiff=$arr_sign['lasttime']-$timeToday;
            //当前时间与上一次签到时间差
            $newdiff=$time-$arr_sign['lasttime'];
    //        print_r(date('Y-m-d H:i:s',$timeToday));die;
    //        print_r($lastdiff);die;
            //签到+1
            $sign=$arr_sign['user_sign']+1;
            //未签过到进行第一次签到
            if($arr_sign['user_sign']==0){    
                $sql=" update user SET  user_sign=$sign, lasttime=$time where user_id=$id ";
                $arr=$connect->createCommand($sql)->execute();
                return 1;
            }else{
                //判断是否连续签到或断签
                if($lastdiff<=0 && $lastdiff>-86400){
                    $sql=" update user SET  user_sign=$sign, lasttime=$time where user_id=$id ";
                    $arr=$connect->createCommand($sql)->execute();
                    return 1;
                }elseif($lastdiff>0){
                    //已签到
                    return 3;
                }elseif($lastdiff<-86400){
                    //断签
                    $sql=" update user SET  user_sign=1, lasttime=$time where user_id=$id ";
                    $arr=$connect->createCommand($sql)->execute();
                    return 2;
                }else{
                    return 0;
                }
                    
            }
       

  • 相关阅读:
    CDOJ 92 – Journey 【LCA】
    LCA-Tarjan算法
    【模板】无向图的割顶
    Codeforces 190E
    TwoSAT算法模板
    【转】STL之二分查找 (Binary search in STL)
    【转】数论模板
    【转】计算几何模板
    【转】string常用函数
    Codeforces 245G Suggested Friends
  • 原文地址:https://www.cnblogs.com/myon/p/6252420.html
Copyright © 2020-2023  润新知