获取时间区间的列表

<?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;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值