# 安装
npm i util-holidays
# 或者 yarn add util-holidays
支持离线、在线两种模式,支持 typescript,支持自定义 api
因每年 11 月份左右公布下一年假期,所以离线模式需要每年更新版本,当前版本不属于当年时,会报错提示;
import { getDayInfo , isWorkingDay , isWeekend , isStatutoryHoliday } from 'util-holidays'
// 获取日期信息
getDayInfo ( '2020-10-01' )
// 返回值结构:
{
date : '2020-10-01' ,
week : '星期四' ,
type : '国庆节' ,
dayType : 3 ,
ps : 'dayType:1-工作日;2-周末;3-法定节假日;4-补休调工日'
}
// 判断是否工作日(含法定调工,如2020年10月10日)
isWorkingDay ( '2020-10-10' )
// 判断是否正常休息的周末(不含法定调工,如2020年10月10日)
isWeekend ( '2020-10-10' )
// 判断是否法定节假日
isStatutoryHoliday ( '2020-10-01' )
// 格式化日期, fmt -> yyyy-MM-dd hh:mm:ss:S
dateFormat : ( date : string | number | Date , fmt ? : string ) => string
在线模式首次启动或每次调用时,会检查本地数据,若不是当年,则调用接口更新本地数据;
若有出网白名单限制的话,请将此 API 放行:https://util.beituyun.com/v1/holidays/queryData
在线模式需要获取 key 并进行配置:
// key获取方式为:https://util.beituyun.com/v1/holidays/creatKey?phone=你的手机号
import { config } from 'util-holidays'
config ( {
onLine : true ,
key : 'your key' ,
} )
在线离线支持随时切换,您可指定某一时刻才联网更新,并且更新后可关闭在线模式;
其他用法同离线模式。
也支持链接自己的 api,只要返回格式如下即可:
import { config } from 'util-holidays'
config ( {
onLine : true ,
url : 'your api'
} )
// api返回数据格式参考上面api的返回值:其中status代表是0调工还是1调休
{
flag : 1 ,
data : [ { date : '2021-06-13' , type : '端午节' , status : 1 } ] ,
message : 'string'
}
另提供免费的开放接口供大家使用,API 地址:https://util.beituyun.com/v1/holidays
使用方法(均支持 POST/GET,POST 使用 body,GET 使用 query):
获取节假日数据:/queryData, 入参 key;
获取日期信息,同 getDayInfo:/getDayInfo, 入参 key、date;
创建 key:/creatKey, 入参 phone
接口资源有限,因此限制每个 key 可以最高调用 50 次/s;