<?php
//获取月份英文缩写
function get_month_english($m){
$month_e=array(
1 => "Jan",
2 => "Feb",
3 => "Mar",
4 => "Apr",
5 => "May",
6 => "Jun",
7 => "Jul",
8 => "Aug",
9 => "Sep",
10 => "Oct",
11 => "Nov",
12 => "Dec"
);
return $month_e[$m];
}
/**
* 返回时间区间内的 天数 星期 月
* state 起始时间 2020-02-02
* end 结束时间 2020-03-22
st 默认英文月,否则数字
*/
function time_arr($start,$end,$st=0){
$start=explode('-', $start);//开始时间
$end=date('Ymd',strtotime($end));//结束时间
// 当前星期
$week=["日","一","二","三","四","五","六"];
// $week[date("w",strtotime("2020-07-07"))];
//日期数组
$time_arr=[];
do {
//当前循环时间
$t=$start['0'].$start['1'].$start['2'];
//返回当前月的天数 月,年
$d_num=cal_days_in_month(CAL_GREGORIAN, $start['1'], $start['0']);
if($st){
$time_arr[]=$start['0'].'-'.$start['1'].'-'.$start['2'];
}else{
$time_arr[get_month_english((int)$start['1'])][]=[
$start['2'], //当前日
$week[date("w",strtotime($t))], //当前星期
];
}
//循环day
if($start['2']<9){
$start['2']=$start['2']+1;
$start['2']='0'.$start['2'];
}else{
$start['2']++;
}
//循环month
if($start['2']>$d_num){
$start['2']='01';
if($start['1']<9){
$start['1']=$start['1']+1;
$start['1']='0'.$start['1'];
}else{
$start['1']++;
}
}
//循环year
if($start['1']>12){
$start['0']++;
$start['1']='01';
$start['2']='01';
}
} while ($end>=$t+1);
return $time_arr;
}