项目中有需求:
判断指定日期,是否为节假日、双休日、工作日。
简单想了下,双休日可能也上班,工作日可能休息。另外每年的节假日,放假时间,还真不知道!
自己做不出来,就在网上找答案:
推荐一篇文章:
https://www.aspirantzhang.com/learning/is-holiday.html
没细看,看他里面提到了 'juhe.cn' 聚合数据,申请了下接口,免费用户每天100次,但是只能判断是否为 '假期',并不能判断,今天是否休息!例如:星期日,是休息日,但是得上班。
在网上搜日历:
百度:日历
各种万年历哈,百度的、其他的...
百度的就很好,但是分析了半天,找不到它调用的接口,最终找到了(本来都打算用其他家的了,也可以分析出来,但是肯定速度没百度的快!),处理了下,可以判断出来。这里分享下代码,laravel 框架的(不要吐槽代码质量,我就这水平)
// 门面类(Facades)
use Illuminate\Support\Facades\Cache;
// 其他底层类
use GuzzleHttp\Client;
/**
* 通过 『百度』 获取万年历 - 获取单月
*/
if ( !function_exists('baidu_calendar_days')) {
function baidu_calendar_days($month = '')
{
$api_url = 'http://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={month}&co=&resource_id=6018';
// 未传入日期,取当天日期
if(empty($month)){
$month = date('Y年n月');
// 传入的是 『时间戳格式』
}elseif(strpos($month, '-') === false){
$month = date('Y年n月', $month);
// 传入的是 『YYYY-MM-DD格式 或 YYYY-MM 等其他格式』
}else{
$month = date(&#