概述
平時在開發(fā)的過程中經(jīng)常會用到查詢節(jié)假日的功能,但由于節(jié)假日是每年由國務院統(tǒng)一公布,我們
無法通過計算獲取節(jié)假日,所以一般需要我們手動來維護節(jié)假日。
網(wǎng)上有很多節(jié)假日查詢的接口,但查詢條件和返回結果并不是太理想,
于是就自己寫了個節(jié)假日查詢接口并提供一個簡單的頁面。接口提供豐富的查詢參數(shù)并且響應的字段可以自由定制。
快速開始
節(jié)假日查詢的 接口地址 為:
https://api.apihubs.cn/holiday/get
直接訪問接口地址會得到當前年份當前月份的整月數(shù)據(jù),其中包含了詳細的節(jié)假日信息
節(jié)假日查詢的 示例頁面地址 為:
http://www.apihubs.cn/#/holiday
在示例頁面中會根據(jù)你選擇的條件動態(tài)生成接口地址,然后可以直接點擊瀏覽器中打開接口地址預覽接口返回信息
參數(shù)
節(jié)假日查詢接口提供了豐富的查詢參數(shù),所有參數(shù)都為可選參數(shù),可靈活搭配使用,多個條件之間為&&的關系
參數(shù)中的日期格式均為PHP中的 日期格式
- field 用來指定返回結果包含的字段,多個使用英文逗號分隔 枚舉
- year 用來指定要查詢的年份,格式為 Y ,多個使用英文逗號分隔
- month 用來指定要查詢的月份,格式為 Ym ,多個使用英文逗號分隔
- date 用來指定要查詢的日期,格式為 Ymd ,多個使用英文逗號分隔
- yearweek 用來指定要查詢一年中的第幾周,格式為 oW ,多個使用英文逗號分隔
- yearday 用來指定要查詢一年中的第幾天,格式為 z ,多個使用英文逗號分隔
- holiday 用來指定要查詢的節(jié)假日,99為全部節(jié)假日,多個使用英文逗號分隔 枚舉
- holiday_overtime 用來指定要查詢的節(jié)假日調(diào)休(加班),99為全部調(diào)休,多個使用英文逗號分隔 枚舉
- week 用來指定要查詢的星期,多個使用英文逗號分隔 枚舉
- workday 用來指定查詢是否為工作日(包含調(diào)休在內(nèi)需要上班的日子) 枚舉
- weekend 用來指定查詢是否為周末(星期六和星期日) 枚舉
- holiday_today 用來指定查詢是否為節(jié)日當天 枚舉
- holiday_legal 用來指定查詢是否為法定節(jié)假日(三倍工資)枚舉
- holiday_recess 用來指定查詢是否為假期節(jié)假日(節(jié)日是否放假)枚舉
- lunar 用來指定年份、月份、日期、天數(shù)參數(shù)是否查詢農(nóng)歷日期
- cn 用來指定返回結果是否包含中文結果,默認返回的都是數(shù)字日期和枚舉數(shù)字有利于邏輯判斷不利于顯示
- page 分頁頁碼
- size 分頁每頁數(shù)量
響應
節(jié)假日查詢接口的枚舉功能是基于 php-enum 實現(xiàn)的統(tǒng)一格式響應
節(jié)假日查詢接口響應始終為JSON數(shù)據(jù)格式,如下
{
"code": "0",
"msg": "ok",
"data": ""
}
- code 成功時始終為0,失敗時為 枚舉值 中的key
- msg 成功時始終為 ok 失敗時為 枚舉值 中的value
- data 成功時返回數(shù)據(jù),失敗時部分返回失敗數(shù)據(jù),如表單驗證失敗。
- data.page 當前頁碼
- data.size 當前每頁數(shù)量
- data.total 根據(jù)查詢條件查到的總數(shù)量
- data.list 節(jié)假日列表
data.list包含了節(jié)假日的詳細信息,其中的所有字段都可以通過 field 參數(shù)進行按需使用
默認會返回數(shù)字日期和枚舉碼,這非常適合用來做邏輯判斷。如下
{
"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查詢參數(shù),會將查取的字段名加上 _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": "2021年01月",
"date_cn": "2021年01月01日",
"yearweek_cn": "2020年第53周",
"yearday_cn": "2021年第1天",
"lunar_year_cn": "二零二零年",
"lunar_month_cn": "二零二零年冬月",
"lunar_date_cn": "二零二零年冬月十八",
"lunar_yearday_cn": "2020年第343天",
"week_cn": "星期五",
"weekend_cn": "非周末",
"workday_cn": "非工作日",
"holiday_cn": "元旦",
"holiday_or_cn": "元旦",
"holiday_overtime_cn": "非節(jié)假日調(diào)休",
"holiday_today_cn": "節(jié)日當天",
"holiday_legal_cn": "法定節(jié)假日",
"holiday_recess_cn": "假期節(jié)假日"
}
- year 公歷年份
- month 公歷月份
- date 公歷日期
- yearweek 公歷一年中的第幾周,注意這里的年份是ISO-8601周編號年份,始終以周一至周日為一周。如需獲取7天為一周直接使用年份中的天數(shù)除7即可。
- yearday 公歷一年中的第幾天
- lunar_year 農(nóng)歷年份
- lunar_month 農(nóng)歷月份
- lunar_date 農(nóng)歷日期
- lunar_yearday 農(nóng)歷一年中的第幾天
- week 星期幾
- weekend 是否為周末
- workday 是否為工作日(包含調(diào)休在內(nèi)需要上班的日子)
- holiday 節(jié)假日,這里使用兩位數(shù)字枚舉表示節(jié)假日,其中特殊數(shù)字10表示非節(jié)假日,特殊數(shù)字99表示全部節(jié)假日
- holiday_or 其他節(jié)假日,枚舉與節(jié)假日相同,表示同一天中的另一個節(jié)日,如 2020-10-01
- holiday_overtime 節(jié)假日調(diào)休,枚舉與節(jié)假日相同
- holiday_today 是否為節(jié)日當天
- holiday_legal 是否為法定節(jié)假日(三倍工資)
- holiday_recess 是否為假期節(jié)假日(節(jié)日是否放假)
節(jié)假日查詢的功能到這里就介紹完了,大家在使用過程中遇到任何問題都可以 聯(lián)系我