# 节假日api
**Repository Path**: web/holidays_api
## Basic Information
- **Project Name**: 节假日api
- **Description**: 免费节假日API 开源了,可以离线调用, 可以集成到自己系统中
- **Primary Language**: PHP
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 280
- **Forks**: 80
- **Created**: 2019-02-28
- **Last Updated**: 2026-08-19
## Categories & Tags
**Categories**: utils
**Tags**: None
## README
# 节假日 API
精简、免费、开源的中国节假日 API,支持离线调用,可集成到任意 PHP 项目中。
## 功能特性
- 支持 `2019` 至 `2026` 年法定节假日数据
- 在线接口调用(GET 传参)及离线 SDK 调用两种方式
- 支持 JSONP 跨域回调
- 提供两种返回模式:工资倍数模式、详细类型模式
- 自动识别周末 / 调休 / 法定节假日
- 静态缓存 + 本地文件缓存,性能稳定
- 缺失年份数据时自动从远程仓库回源下载
## 目录结构
```
holidays_api/
├── index.php # HTTP 入口文件(在线接口)
├── include/
│ └── dateapi.class.php # 核心日期 API 类
├── data/ # 各年份节假日数据(JSON)
│ ├── 2019_data.json
│ ├── 2020_data.json
│ ├── 2021_data.json
│ ├── 2022_data.json
│ ├── 2023_data.json
│ ├── 2024_data.json
│ ├── 2025_data.json
│ └── 2026_data.json
├── README.md
└── README.en.md
```
测试APIKEY获取(关注公众号回复:节假日)

## 在线接口使用
部署到支持 PHP 的服务器后,直接通过 HTTP GET 调用:
```
GET /index.php?d=2025-01-01
GET /index.php?d=20250101
GET /index.php?d=2025-01-01&type=2
GET /index.php?d=2025-01-01&callback=myFn # JSONP 回调
```
### 参数说明
| 参数 | 必填 | 说明 |
|------|------|------|
| `d` | 是 | 日期,支持 `20250101` 或 `2025-01-01` 格式 |
| `type` | 否 | 返回类型,默认 `1`。`1`=工资倍数模式,`2`=详细类型模式 |
| `callback` | 否 | JSONP 回调函数名,用于跨域场景 |
### 返回格式(type=1 工资倍数)
```json
{
"status": 1,
"info": 2
}
```
- `0`:工作日(正常工资)
- `1`:周末(双倍工资)
- `2`:法定节假日(三倍工资)
### 返回格式(type=2 详细类型)
```json
{
"status": 1,
"info": 4
}
```
- `1`:工作日
- `2`:调休(按工作日处理)
- `3`:周末
- `4`:法定节假日
### 返回错误
```json
{"status": 0, "info": "日期格式错误"}
{"status": 0, "info": "数据获取失败"}
```
## 离线 SDK 调用
```php
include('include/dateapi.class.php');
$api = new DateApi();
// 方式一:工资倍数(0/1/2)
$result = $api->getday('2025-01-01');
// 方式二:详细类型(1/2/3/4)
$result = $api->getday('2025-01-01', 2);
```
## 数据格式
`data/` 目录下每个 JSON 文件存放一年的节假日数据,键为 `MMDD`,值为类型编码:
| 取值 | 含义 |
|------|------|
| `0` | 调休(休息日调为工作日) |
| `1` | 法定节假日(按工作日处理) |
| `2` | 法定节假日(休息日) |
例如 `2025_data.json`:
```json
{
"0101": 2,
"0208": 0,
"0501": 2,
"1001": 2
}
```
未在表中的日期将根据实际周末规则自动判定。
## 在线 Demo
- 在线接口:http://tool.bitefu.net/jiari/
- 开源接口:https://tool.bitefu.net/jiari/openapi.php
- VIP 通道:http://tool.bitefu.net/jiari/vip.php
- VIP 专用通道:http://vip.bitefu.net/jiari/
## 开发说明
- 原百度 APIStore 节假日接口即为作者本人提供,后因平台限制独立开源
- 开源版本提供最核心的离线查询能力,可自行二次开发
- 如需技术指导或定制开发,可联系作者(rar3@sina.com,xiaogg@sina.cn)
## 捐助我
## 多语言调用示例
各主流编程语言(cURL、JavaScript / jQuery / Node.js、Python、Java、C#、Go、Ruby、PHP、Swift、Kotlin、微信小程序、uni-app、Flutter 等)调用本 API 的完整示例代码,请查阅:
👉 [examples.md](./examples.md)
## 许可协议
本项目基于 [LICENSE](./LICENSE) 文件中声明的开源协议发布。