对指定时间内的周一到周末进行分组(PHP)

const MONDAY = 'Mon';
const TUESDAY = 'Tue';
const WEDENSDAY = 'Wed';
const THURSDAY = 'Thu';
const FRIDAY = 'Fri';
const SATURDAY = 'Sat';
const SUNDAY = 'Sun';
public function Yeardays($dateStart, $dateend) {
	$period = new \DatePeriod(new \DateTime($dateStart), new \DateInterval('P1D'), (new \DateTime($dateend)));
	$dates = iterator_to_array($period);
	$arrayreturn = array('Mon' => array(), 'Tue' => array(), 'Wed' => array(), 'Thu' => array(), 'Fri' => array(), 'Sat' => array(), 'Sun' => array(),);
	foreach ($dates as $val) {
		$date = $val->format('Y-m-d'); //format date
		$get_name = date('l', strtotime($date)); //get week day
		$day_name = substr($get_name, 0, 3); // Trim day name to 3 chars
		switch ($day_name) {
			case self::MONDAY:
				$MONDAY[] = $date;
				$arrayreturn[self::MONDAY] = $MONDAY;
				break;
			case self::TUESDAY:
				$TUESDAY[] = $date;
				$arrayreturn[self::TUESDAY] = $TUESDAY;
				break;
			case self::WEDENSDAY:
				$WEDENSDAY[] = $date;
				$arrayreturn[self::WEDENSDAY] = $WEDENSDAY;
				break;
			case self::THURSDAY:
				$THURSDAY[] = $date;
				$arrayreturn[self::THURSDAY] = $THURSDAY;
				break;
			case self::FRIDAY:
				$FRIDAY[] = $date;
				$arrayreturn[self::FRIDAY] = $FRIDAY;
				break;
			case self::SATURDAY:
				$SATURDAY[] = $date;
				$arrayreturn[self::SATURDAY] = $SATURDAY;
				break;
			case self::SUNDAY:
				$SUNDAY[] = $date;
				$arrayreturn[self::SUNDAY] = $SUNDAY;
				break;
		}
	}
	//        当前时间内周几共有几条记录
	//        $array = [
	//            '1'=>count($arrayreturn['Mon']),
	//            '2'=>count($arrayreturn['Tue']),
	//            '3'=>count($arrayreturn['Wed']),
	//            '4'=>count($arrayreturn['Thu']),
	//            '5'=>count($arrayreturn['Fri']),
	//            '6'=>count($arrayreturn['Sat']),
	//            '7'=>count($arrayreturn['Sun']),
	//        ];
	return $arrayreturn;
}

调用方式

注:后面的时间最好加一天

$this->Yeardays('2020-07-01','2020-07-31');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值