PHP生成日期范围

/**
 * 生成日期范围
 *
 * @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);
}