时间格式化我使用了Carbon类包
function getHoliday($date_time)
{
$date_time = \Carbon\Carbon::parse($date_time);
$curl = curl_init ( ) ;
$params = [
'query' => str_replace('年0', '年', $date_time->format('Y年m月')),
'resource_id'=> 39043,
'tn' => 'wisetpl',
'ie' => 'utf8',
'oe' => 'utf8',
'format' => 'json',
];
//设置抓取的url
curl_setopt ( $curl , CURLOPT_URL , 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?'.http_build_query($params) ) ;
//设置头文件的信息作为数据流输出
curl_setopt ( $curl , CURLOPT_HEADER , 0 ) ;
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , 1 ) ;
//执行命令
$data = curl_exec ( $curl ) ;
//关闭URL请求
curl_close ( $curl ) ;
//显示获得的数据
$holiday_info = json_decode($data,true);
$holiday_info['data'][0]['almanac'] = $holiday_info['data'][0]['almanac'] ?? [];
$array = [];
foreach ($holiday_info['data'][0]['almanac'] as $value) {
$status = $value['status'] ?? 0;
//$status 1假节日 2周末补班 0正常时间(可按照周六周日来划分是否是节假日)
$date = \Carbon\Carbon::parse($value['oDate'])->setTimezone('Asia/Shanghai');
$is_weekend = $date->isWeekend();
$de_time = $date->format('Y-m-d');
if (1 == $status || ($is_weekend && 0 == $status)) {
//假日
$array[$date->format('Y-m')][] = $de_time;
}
}
if ($array) {
$array = $array[$date_time->format('Y-m')] ?? [];
}
return $array;
}
return getHoliday("2021-07");
[
"2021-07-03",
"2021-07-04",
"2021-07-10",
"2021-07-11",
"2021-07-17",
"2021-07-18",
"2021-07-24",
"2021-07-25",
"2021-07-31"
]