PHPackages                             christianswift/holiday-or-workday - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. christianswift/holiday-or-workday

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

christianswift/holiday-or-workday
=================================

一个基于免费接口获取数据，并处理数据，从而方便判断天朝工作日的工具，修改自liujia/holiday-or-workday

01PHP

Since Aug 3Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ChristianSwift/holiday-or-workday)[ Packagist](https://packagist.org/packages/christianswift/holiday-or-workday)[ RSS](/packages/christianswift-holiday-or-workday/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

> 一个基于免费接口获取数据，并处理数据，从而方便判断天朝工作日的工具 正常情况，执行一次，可以获取某一年的所有数据，缓存之后直接调用判断就行 2017-09-06

- 纯PHP
- 第三方接口用的是[聚合数据的万年历](https://www.juhe.cn/docs/api/id/177)

更新
--

[](#更新)

### 2017-12-04

[](#2017-12-04)

- 修复一个判断条件中，非当前年的错误判断

### 2017-09-07

[](#2017-09-07)

- 减少已经循环已经处理过的节日
- 区分多个假日和单个假日数据格式不同
- 通过判断日期，增加未获取到数据的年份重新获取数据的触发

使用
--

[](#使用)

可以通过composer安装

```
composer require liujia/holiday-or-workday

```

通过传入比如`2017-09-07`或者`2017-9-7`格式，返回对应日期的假日状态

```
array(
	'status' => 1,
)
```

这里定义的`status`的值,工作日为1，休息日为2（加班2倍工资），节假日为3（加班应该是3倍工资），方便计算O(∩\_∩)O。

处理
--

[](#处理)

- 通过聚合数据的`最近假日`来逐月获取假日信息
- 将获取的数据进行自定义处理,并“缓存”起来
- 之后的判断直接使用

其他
--

[](#其他)

- 使用接口需要[注册](https://www.juhe.cn/register)聚合数据的账号，并[申请](https://www.juhe.cn/docs/api/id/177)对应的数据；在工具中需要填入对应的`appkey`
- 组装的数据可以存放到任何文件或者任何存储中，本例为了使用方便，直接存到`php`文件中,最好放到缓存中
- 文件是按年份存的
- 组装的数据格式

```
