robier / holiday
计算假日库
dev-master
2015-10-15 20:46 UTC
Requires
- php: >=5.5.0
This package is auto-updated.
Last update: 2024-09-13 05:39:54 UTC
README
假日项目将解决您计算假日的难题。无论是固定日期、浮动日期还是依赖于其他假日的日期。这个库是在需要不针对特定国家的假日计算时开发的,而其他大多数库都是这样。
请注意,该库不支持持续超过1天的假日。
而且它非常容易使用
use \Robier\Holiday\Holidays; $holidays = new Holidays(); $holidays->registerFixed('new_year', 1, 1); $holidays->registerFloating('us_labour_day', 'first Monday of September'); $holidays->register('easter', new Holidays\Easter()); // Ascension of Jesus accords 40 days after easter $holidays->registerDependent('ascension_of_jesus', 'easter', 40); // true if there is a holiday on that date, false otherwise var_dump($holidays->isHolidayOn(1, 1, 2030)); // gets HolidayData object if holiday exists on that date, null otherwise var_dump($holidays->getHolidayOn(1, 1, 2030)); // true if there is any holidays in that period, false otherwise var_dump($holidays->areAnyHolidaysBetween('2018-07-04', '2018-09-15')); // gets array of holidays for range var_dump($holidays->getHolidaysBetween('2018-07-04', '2018-09-15')); // array of all holidays var_dump($holidays->getAllHolidaysFor(2015));
我们强烈不建议使用此库的戳记,我们不喜欢它们,因为它们在时区和PHP处理它们方面真的不够精确 :)
特性
- 您可以注册3种日期类型
fixed:假日日期始终固定(例如新年)floating:假日日期不固定(例如复活节)dependant:一个假日依赖于另一个假日(它是在“主要”假日之前或之后x天)
- 您可以通过提供日期来检查假日是否存在
- 您还可以通过提供日期来获取假日
- 您可以通过提供日期范围来检查该日期范围内是否有任何假日
- 您还可以通过提供日期范围来获取假日
- 您可以获取指定年份的所有假日
- 您可以通过实现
Calculable接口来创建自己的假日类定义(它不能是依赖于假日的类型)
安装
此项目需要PHP 5.5或更高版本。通过composer安装此库非常简单,只需运行以下命令
composer require robier/holiday
贡献
您可以通过pull request进行贡献。
待办事项
- 添加对持续超过1天的假日的支持
- 添加更多默认假日
- 增加测试覆盖率
许可证
此库是在MIT许可证下开发的。