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);
}