/**
* 生成日期范围
*
* @param string $startDate 开始日期 2020-09-25
* @param string $endDate 结束日期 2020-10-08
* @param bool $range_month 是否生成月范围,默认生成日范围
*
* @return array
*/
function rangeDate($startDate = '', $endDate = '', $range_month = false)
{
$array = [];
$start = strtotime($startDate);
$end = strtotime($endDate);
// 默认最多生成366天,正常365天,如闰年的2月多一天
$limit = 366;
// 默认最多生成12个月
$monthLimimt = 12;
$i = 1;
if (false === $range_month) {
$array[] = date('Y-m-d', $start);
while ($limit--) {
$next = strtotime("+$i day", $start);
$i++;
if ($next < $end) {
$array[] = date('Y-m-d', $next);
} else {
break;
}
}
$array[] = date('Y-m-d', $end);
} else {
$array[] = date('Y-m', $start);
while ($monthLimimt--) {
$next = strtotime("+$i month", $start);
$i++;
if ($next < $end) {
$array[] = date('Y-m', $next);
} else {
break;
}
}
$array[] = date('Y-m', $end);
}
// 去重一次
return array_unique($array);
}