获取一个月的考勤数据

本文介绍如何处理考勤数据缺失的情况,通过生成月初到月末的日期数组,并结合数据库查询,重构考勤记录,确保获取到一个月内所有员工的完整考勤信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求如下: 获取一个月内所有考勤数据, 但是考勤记录会缺失 , 例如 今天签到 昨天没有签到 , 数据库中就不存在昨天的打卡信息.

解决办法如下:

首先生成一个月初到月尾的数组,方法如下:

/*
     * 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;
    }

通过此方法 , 生成一个数组

通过数据库查询 查询到此人当月考勤记录(不一定包含每天)

这是我查询出的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值