zoukankan      html  css  js  c++  java
  • 签到功能中关于时间的判断

    //签到 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;
                }
                    
            }
       

  • 相关阅读:
    PHP+ajaxfileupload与jcrop插件结合 完成头像上传
    MySQL字符集设置及字符转换(latin1转utf8)
    sysbench的安装和做性能测试
    MySQL字符集的一个坑
    MySQL执行计划解读
    启动InnoDB引擎的方法
    查询当前使用的默认的存储引擎
    Mysql技术内幕——InnoDB存储引擎
    Oracle Golden Gate原理简介
    在系统启动时,Windows Vista 中、 在 Windows 7 中,Windows Server 2008 中和在 Windows Server 2008 R2 中的 497 天后未关闭 TIME_WAIT 状态的所有 TCP/IP 端口
  • 原文地址:https://www.cnblogs.com/myon/p/6252420.html
Copyright © 2011-2022 走看看