php根据计算某个时间段内包含星期几的时期

假如从今天开始,我想获取之后每周包含周一和周二的时间,加起来一共要3天

$today = '2019-12-17';
$weeks = [1,2];
$days = 3;
var_dump(getWeekDays($today,$weeks,$days));

/**
 * @desc: 根据开始时间和每周的周期计算出天数范围内的所有时间段
 * @param: $start  开始时间
 * @param: $weeks  每周的星期 如每周的周一,周二  对应值 [1,2]
 * @parma: $days   需要计算出多少天
 * @return: Array
 */
function getWeekDays($start,$weeks = [],$days = 1){
	$datas = [];
	$date = $start;
	$counts = 0;
	while($counts < $days){		
		$week = date('w',strtotime($date));
		if(in_array($week,$weeks)){
			$counts++;
			array_push($datas,$date);
		}
		$date = date('Y-m-d',strtotime('+1 day',strtotime($date)));
	}
	return $datas;
}
$today = '2019-12-17';
$weeks = [1,2];    // 对应的是周几,如果我想拿周三周四的就是[3,4]
$days = 3;        
print_r(getWeekDays($today,$weeks,$days));
# print
# Array ( 
#	[0] => 2019-12-17 
#	[1] => 2019-12-23 
#	[2] => 2019-12-24 
#)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值