php 根据当前日期,获取当月第一天,最后一天,通过循环获取每个月的第一天,最后一天

php 根据当前日期,获取当月第一天,最后一天,通过循环获取每个月的第一天,最后一天

注:项目需要通过日期,一个月一个月的去调用别的接口拉取数据,终于查找到一个合适的方法

$start_date = '2018-08-08';
$BeginDate=date('Y-m-01', strtotime($start_date));//当月第一天
$end_date = date('Y-m-d',strtotime("$BeginDate +1 month -1 day"));//当月最后一天

$i = false;
do{
            if($i) { //从下个月开始调用方法获取开始结束日期
                $date = $this->getNextMonthDays($start_date);
                $start_date = $date[0];
                $end_date = $date[1];
            }

            //按月查询数据并入库
            $res = $syncModel->getDeptsAndUsers($start_date, $end_date);
            
            $i = true;
}while(strtotime($end_date) < strtotime(date('Y-m-d')));
        
public function getNextMonthDays($date){
        $timestamp=strtotime($date);
        $arr=getdate($timestamp);
        if($arr['mon'] == 12){
            $year=$arr['year'] +1;
            $month=$arr['mon'] -11;
            $firstday=$year.'-0'.$month.'-01';
            $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
        }else{
            $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
            $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
        }
        return array($firstday,$lastday);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值