zoukankan      html  css  js  c++  java
  • PHP计算连续签到天数以及累计签到天数

    代码如下:

    /**
         * 统计连续签到天数以及累计签到天数
         * @param string $user_long_id 用户ID
         * @return array 一维数组
         */
        function sign_count($user_long_id){
            //获取上个月最后一天
            $endDay =  strtotime(date('Y-m-t', strtotime('-1 month')));
    //        $time = strtotime("2017-11-22 12:00:00");
            $cur_day = date('Ymd',time());
            $sql = "select sign_time from bzf_sign_info where user_long_id = '$user_long_id' and sign_score = 1 and sign_time > $endDay order by sign_time desc";
            $arr = $this->doquery_rows($sql);
    
            $add_count_days = 0;//连续签到天数
            $count = 0;  //累计签到天数
            $day_list = [];
            if (!empty($arr)){
                foreach ($arr as $k=>$v){
                    $day_list[] = $v['sign_time'];
                }
                $count = count($day_list); //累计签到天数
            }
            if($cur_day - 1 > date("Ymd",$day_list[0])){
                return array('add_days'=>$add_count_days,'total_day'=>$count);
            } else {
                $add_count_days = 1;//连续签到天数
            }
            for($i = 0;$i < $count - 1;$i++){
                $res = $this->compareDay(date("Ymd",$day_list[$i]),date("Ymd",$day_list[$i+1]));
                if($res) $add_count_days++;
                else break;
            }
            return array('add_days'=>$add_count_days,'total_day'=>$count);
        }
    
        /**
         * 比较当天签到天数与上一次签到时间
         * @param string $curDay 当天签到天数
         * @param string $nextDay 上一次签到天数
         * @return boolean
         */
        function compareDay($curDay,$nextDay)
        {
            if($curDay - 1 == $nextDay){
                return true;
            }else{
                return false;
            }
        }

    以上就是这次的全部内容!

  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/jingxiaoniu/p/7988190.html
Copyright © 2011-2022 走看看