当前位置: 首页 > 后端技术 > PHP

非常好用的节假日查询接口

时间:2023-03-30 02:12:21 PHP

概述通常开发过程中经常会用到节假日查询功能,但是由于每年节假日都是国务院统一公布的,我们无法通过计算得到节假日,所以一般需要维护他们手动假期。网上有很多节假日查询接口,但是查询条件和返回结果都不理想,所以写了一个节假日查询接口,提供了一个简单的页面。接口提供丰富的查询参数,响应字段可自由定制。节假日查询快速启动接口地址为:https://api.apihubs.cn/holiday/get直接访问该接口地址将获取当年当月的全月数据,包含详细的节假日信息示例节假日查询页面地址为:http://www.apihubs.cn/#/holiday示例页面中会根据您选择的条件动态生成接口地址,直接点击浏览器打开即可接口地址预览接口返回信息参数节假日查询接口提供了丰富的查询参数,所有参数均为可选参数,可以灵活使用,关系参数中的日期格式为&&,多个条件之间为PHP字段中的日期格式用于指定返回结果中包含的字段,多个逗号分隔的枚举year用于指定查询的年份,格式为Y,多个逗号分隔的月份用于指定fy要查询的月份,格式为Ym,多个逗号分隔的日期用于指定查询日期,格式为Ymd,多个逗号分隔的yearweek用于指定一年中要查询的周数,格式为oW,多个逗号分隔的yearday用于指定要查询的年份的天数,格式为z,多个逗号分隔的holidays用于指定要查询的节假日,99为所有节假日,多个逗号分隔的枚举holiday_overtime用于指定查询的节假日(加班),99为Alldaysoff,多个逗号分隔的枚举week用于指定查询的周数,多个逗号分隔的枚举workday用于指定查询是否为工作日(需要上班的日子包括休息日)enumeration枚举weekend用于指定查询是否为周末(周六和周日)。枚举holiday_today用于指定查询是否为假期。枚举holiday_legal用于指定查询是否为法定节假日(三倍工资)。枚举holiday_recess用于指定查询是否为Holidays和holidays(holiday是否为节假日)枚举lunar用于指定是否查询年、月、日、天数。参数cn用于指定返回结果是否包含中文结果。默认情况下,所有返回的数字和枚举数字有利于逻辑判断,不利于显示页面pagenumbersize每页页数responseholiday查询接口的枚举功能是基于php-enum实现格式统一的Responseholiday查询接口响应始终为JSON数据格式,如下{"code":"0","msg":"ok","data":""}code成功时常为0,失败时为枚举值中的keymsg,成功时常为ok,失败时,为枚举值中的valuedata,成功时返回数据,失败时返回部分失败数据,如表单验证失败data.page当前页码data.size当前每页数量data.total根据查询条件找到的总数data.list假期列表data.list包含假期的详细信息,其中的所有字段都可以通过field参数按需使用。默认会返回数字日期和枚举代码,非常适合逻辑判断。如下{"year":2021,"month":202101,"date":20210101,"yearweek":202053,"yearday":1,"lunar_year":2020,"lunar_month":202011,"lunar_date":20201118,"lunar_yearday":343,"week":5,"weekend":2,"workday":2,"holiday":22,"holiday_or":22,"holiday_overtime":10,"holiday_today":1,"holiday_legal"":1,"holiday_recess":1}启用cn查询参数时,查询的字段名会加上_cn后缀返回可视化的新字段,同时返回原字段。如下{"year":2021,"month":202101,"date":20210101,"yearweek":202053,"yearday":1,"lunar_year":2020,"lunar_month":202011,"lunar_date":20201118,"lunar_yearday":343,"week":5,"weekend":2,"workday":2,"holiday":22,"holiday_or":22,"holiday_overtime":10,"holiday_today":1,"holiday_legal"":1,"holiday_recess":1,"year_cn":"2021","month_cn":"January2021","date_cn":"January01,2021","yearweek_cn":"2020Week53","yearday_cn":"2021年第一天","lunar_year_cn":"2020","lunar_month_cn":"2020年冬月","lunar_date_cn":"2021年2020年冬月十八","lunar_yearday_cn":"第343天of2020","week_cn":"周五","weekend_cn":"非周末","workday_cn":"非工作日","holiday_cn"":"元旦","holiday_or_cn":"新Year'sDay","holiday_overtime_cn":"非节假日","holiday_today_cn":"节假日","holiday_legal_cn":"法定节假日","holiday_recess_cn":"节假日"}year公历年月gregoriancalendarmonthdate公历日期yearweek公历一年中的星期,这里注意年份年份是ISO-8601周数年份,始终使用星期一到星期日作为一周。如果一周需要7天,直接用一年中的天数除以7即可。农历lunar_yearday农历节假日中一年中的第几天,这里用两位数枚举表示节假日,其中特殊数字10表示非节假日,特殊数字99表示所有节假日holiday_or其他节假日,枚举与holidays相同,表示同一天还有一个假期,如2020-10-01holiday_overtime假期调整,枚举与holidays相同holiday_today为放假日holiday_legal为法定休假(三倍工资)holiday_recess为aholiday放假(放假是不是放假)放假查询功能就介绍到这里,大家都在用,遇到什么问题可以联系我