/**
* 获取指定日期n天前后的日期列表
* @param string $date 日期
* @param int $day_num 天数
* @param string $cate 类型
* @param string $format 格式
* @return array
*/
function get_date_ab_list(string $date, int $day_num, string $cate = 'b', string $format = 'Y-m-d'): array
{
//cate b代表before,指定日期往前$day_num天,a代表after,指定日期往后$day_num天
$timezone = 'PRC';
$data = [$date];
switch ($cate) {
case 'a':
if ($day_num > 0) {
$data = [];
for ($i = 1; $i < ($day_num + 1); $i++) {
$str = '+' . $i . ' day';
$datetime = new \DateTime($date, new \DateTimeZone($timezone));
$tmp = $datetime->modify($str);
$data[] = $tmp->format($format);
}
}
break;
case 'b':
if ($day_num > 0) {
$data = [];
for ($i = 1; $i < ($day_num + 1); $i++) {
$str = '-' . $i . ' day';
$datetime = new \DateTime($date, new \DateTimeZone($timezone));
$tmp = $datetime->modify($str);
$data[] = $tmp->format($format);
}
}
break;
}
sort($data);
return $data;
}