直接上干货
function getDateByWeek($start_date, $end_date, $data)
{
$start_date = strtotime($start_date);
$end_date = strtotime($end_date);
$days = ($end_date - $start_date) / 86400;
$weekArr = array('周日', '周一', '周二', '周三', '周四', '周五', '周六');
$dateWeek = array();
// 组建数组格式 $dataWeek['日期'] => 星期
for ($i = 0; $i < $days; $i++) {
$num_week = date('w', $start_date + ($i * 86400));
$dateWeek[date('Y-m-d', $start_date + ($i * 86400))] = $weekArr[$num_week];
}
// 查找两个数组的交集,即获取提交的星期对应的日期
$newDate = array_intersect($dateWeek, $data);
// 获取数组中的键值(日期),并组成一个新数组
$date = array_keys($newDate);
return $date;
}
使用:
$a = getDateByWeek('2023-04-19','2023-05-30',array('周日','周六'));
var_dump($a);
结果:
array:12 [▼
0 => "2023-04-22"
1 => "2023-04-23"
2 => "2023-04-29"
3 => "2023-04-30"
4 => "2023-05-06"
5 => "2023-05-07"
6 => "2023-05-13"
7 => "2023-05-14"
8 => "2023-05-20"
9 => "2023-05-21"
10 => "2023-05-27"
11 => "2023-05-28"
]