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