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

本文介绍了一个PHP函数,用于根据开始日期和每周特定的工作日(如周一、周二),计算出指定天数范围内的时间段。通过实例演示了如何使用该函数获取包括特定工作日在内的时间列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假如从今天开始,我想获取之后每周包含周一和周二的时间,加起来一共要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 
#)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值