一个基于免费接口获取数据,并处理数据,从而方便判断天朝工作日的工具 正常情况,执行一次,可以获取某一年的所有数据,缓存之后直接调用判断就行 2017-09-06
- 纯PHP
- 第三方接口用的是聚合数据的万年历
- 可以通过 composer 安装
- 整理了新的数据目录
- 减少已经循环已经处理过的节日
- 区分多个假日和单个假日数据格式不同
- 通过判断日期,增加未获取到数据的年份重新获取数据的触发
使用接口需要注册聚合数据的账号,并申请对应的数据;在工具中需要填入对应的appkey
可以通过composer安装
composer require liujia/holiday-or-workday
只需要调用一个isWorkday
方法就可以了
$obj = new \HolidayOrWorkday\holidayOrWorkday('申请的appkey');
var_dump($obj->isWorkday('2017-12-03'));
注意,命名空间和类名有一个大小写的差别
通过传入比如2017-09-07
或者2017-9-7
格式,返回对应日期的假日状态,返回值为数组形式
array(
'status' => 1,
)
这里定义的status
的值,工作日为1,休息日为2(加班2倍工资),节假日为3(加班应该是3倍工资),方便计算O(∩_∩)O。
- 通过聚合数据的
最近假日
来逐月获取假日信息 - 将获取的数据进行自定义处理,并“缓存”起来
- 之后的判断直接使用
-
组装的数据可以存放到任何文件或者任何存储中,本例为了使用方便,直接存到
php
文件中,最好放到缓存中 -
文件是按年份存的
-
组装的数据格式
<?php
return array (
'2016-12-31' =>
array (
'status' => 3,
),
'2017-1-1' =>
array (
'status' => 3,
),
...
?>