需求如下: 获取一个月内所有考勤数据, 但是考勤记录会缺失 , 例如 今天签到 昨天没有签到 , 数据库中就不存在昨天的打卡信息.
解决办法如下:
首先生成一个月初到月尾的数组,方法如下:
/*
* Effect 生成当月数组
* author FuJiHui
* email 237813405@qq.com
* time 2018-12-14 10:04:19
* parameter date 当月日期
* */
public static function getDateOfMonth($date)
{
$timestamp = strtotime($date);
$j = date('t',$timestamp); //获取当前月份天数
$year = date('Y',$timestamp);
$month = date('m',$timestamp);
$start_time = strtotime(date($year.'-'.$month.'-01')); //获取本月第一天时间戳
$mDates = array();
for($i=0;$i<$j;$i++){
$mDates[] = $start_time+$i*86400; //每隔一天赋值给数组
}
return $mDates;
}
通过此方法 , 生成一个数组
通过数据库查询 查询到此人当月考勤记录(不一定包含每天)
这是我查询出的