- 增加支持自定义API
- 完善单元测试
- 增加2021离线数据
- 增加2020离线数据
# 安装
npm i util-holidays
# 或者 yarn add util-holidays
- 因每年 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;