分享一个会员签到
程序员文章站
2024-01-08 19:09:52
...
在项目中会员签到的模块必不可少的在,这里把自己整理过的一份代码个大家分享下。
先上效果图
会员签到是必须做的,我个人对这个没啥好的头绪,这里参考的 素材火 的会员签到。
首先看下控制器的代码:
然后我们根据这个周几知道有几天的时间是空白的,上面记录的是4,所以前面有4的空白,周日、周一、周二、周三;
然后我们遍历这个月一共多少天,这里用到的 data("t",xx) 这个函数,他的作用是返回这个月的最大天数。28/29/30/31 中的一个;
在循环的时候for是用0开始的,这里把原有得周的值加上然后模上7来取得周几的时间。
然后我们把数据分配到前端,这里需要考虑的是天数可能大于或者少于,那么我们这里就需要和开始一样补空了。ceil($maxDay/7)的值为5,所以这个月的星期为5周,然后*7之后为35,假设这个月是5周,那么最大是35天,和$total相减之后为0,则最后的空为0;
然后是视图代码:
先上效果图
会员签到是必须做的,我个人对这个没啥好的头绪,这里参考的 素材火 的会员签到。
首先看下控制器的代码:
//会员签到
public function sign(){
$first = strtotime(date("Y-m-01 00:00:00"));
$first = date("w", $first);
$maxDay = date('t', strtotime("" . date("Y") . "-" . date("m") . ""));
for ($j = 0; $j
$blankArr[] = $j;
}
for ($i = 0; $i
$z = $first + $i;
$days[] = array("key" => $i, "key2" => $z % 7);
}
$this->assign("days", $days);
$this->assign("first", $first);
$this->assign("blankArr", $blankArr);
$total = $first + count($days);
for ($x = 0; $x
$other[] = $x;
}
$this->assign("other", $other);
$this->display();
首先是获取这个月的第一天的时间戳,然后记录有这是周几,这个是$first的作用,比如这里是10月份,然后处理之后打印出来的$first得值就是4;然后我们根据这个周几知道有几天的时间是空白的,上面记录的是4,所以前面有4的空白,周日、周一、周二、周三;
然后我们遍历这个月一共多少天,这里用到的 data("t",xx) 这个函数,他的作用是返回这个月的最大天数。28/29/30/31 中的一个;
在循环的时候for是用0开始的,这里把原有得周的值加上然后模上7来取得周几的时间。
然后我们把数据分配到前端,这里需要考虑的是天数可能大于或者少于,那么我们这里就需要和开始一样补空了。ceil($maxDay/7)的值为5,所以这个月的星期为5周,然后*7之后为35,假设这个月是5周,那么最大是35天,和$total相减之后为0,则最后的空为0;
然后是视图代码:
会员签到
周日
周一
周二
周三
周四
周五
周六
-
{$row['key']|getSign=###}
-