php统计出两个年份之间的年

原创
小哥 3年前 (2022-11-05) 阅读数 110 #大杂烩

/**

  • 计算出两个日期之间的月份
  • @author Eric
  • @param  [type] $start_date [开始日期,如2022-03]
  • @param  [type] $end_date   [结束日期,如2022-12]
  • @param  string $explode    [年份和月份之间分隔符,此例为 - ]
  • @param  boolean $addOne    [算取完之后最后是否加一月,用于算取时间戳用]
  • @return [type]             [返回是两个月份之间所有月份字符串]
    */
    function dateMonths($start_date,$end_date,$explode=-,$addOne=false){
    //判断两个时间是不是需要调换顺序
    $start_int = strtotime($start_date);
    $end_int = strtotime($end_date);
    if($start_int > $end_int){
    $tmp = $start_date;
    $start_date = $end_date;
    $end_date = $tmp;
    }

//结束时间月份+1,如果是13则为新年的一月份
$start_arr = explode($explode,$start_date);
$start_year = intval($start_arr[0]);
$start_month = intval($start_arr[1]);

$end_arr = explode($explode,$end_date);
$end_year = intval($end_arr[0]);
$end_month = intval($end_arr[1]);

$data = array();
$data[] = $start_date;

$tmp_month = $start_month;
$tmp_year = $start_year;

//如果起止不相等,一直循环
while (!(($tmp_month == $end_month) && ($tmp_year == $end_year))) {
$tmp_month ++;
//超过十二月份,到新年的一月份
if($tmp_month > 12){
$tmp_month = 1;
$tmp_year++;
}
$data[] = $tmp_year.$explode.str_pad($tmp_month,2,0,STR_PAD_LEFT);
}

if($addOne == true){
$tmp_month ++;
//超过十二月份,到新年的一月份
if($tmp_month > 12){
$tmp_month = 1;
$tmp_year++;
}
$data[] = $tmp_year.$explode.str_pad($tmp_month,2,0,STR_PAD_LEFT);
}

return $data;
}

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除