生成两个时间之间的每个月份与起始时间
$start_time = 1647100800; $end_time = 1675353600; $end_time = strtotime(date("Y-m-d 23:59:59",$end_time)); $array = $this->monthArray($start_time,$end_time); /* * 输入开始时间和结束时间 * 按照每个月份分割 */ private function monthArray($start_time,$end_time){ //计算开始时间的当月最后一天 $next_month = strtotime("+1 month",$start_time); $next_month = strtotime(date("Y-m-01 00:00:00",$next_month)); $last_day = $next_month-1; if ($last_day >= $end_time){ return [ [ 'start_time' => $start_time, 'end_time' => $end_time, 'month' => date("Ymd",$start_time) ] ]; } $array1 = [ [ 'start_time' => $start_time, 'end_time' => $last_day, 'month' => date("Ymd",$start_time) ] ]; $array2 = $this->monthArray($next_month,$end_time); return array_merge($array1,$array2); }