签到分析:分别获取当天0点 昨天0点 明天0点的时间戳 然后用表里面的签到时间跟这三个0点写逻辑判断即可
这是我写的测试逻辑:用户每次签到得10积分,连续签到3天或3天以上每次100积分,中途断签获得10积分 即 第一天 10 第二天 10+10=20 第三天 20+100=120 第四天 120+100=220 第五天 断签 第六天 220+10 ......
下面是代码 关键地方已注释
//用户ID $where['admins_id'] = $id; $result = Signs::where($where)->find(); //判断用户是否是第一次签到 if(!$result){ //用户ID $data['admins_id'] = $id ; //连续签到天数 $data['sign'] = 1; //积分 $data['num'] = 10; //签到时间 $data['addtime'] = time(); $res = Signs::insert($data); if($res){ return json(['code'=>200,'msg'=>"已签到",'data'=>""]); } }else{