geoffreyrose / us-holidays
Carbon DateTime Library 的美国假日包装器。
v2.6.0
2024-02-02 00:47 UTC
Requires
- php: ^7.4 || ^8.0
- ext-calendar: *
- nesbot/carbon: ^2.24.0|^3.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.5
- phpunit/phpunit: ^5|^6|^7.5|^8.0|^9.0|^10.0
README
Carbon 对美国假日的支持
这扩展了 Carbon 并添加了对 42 个美国假日的支持。
完整文档
v2.x
https://geoffreyrose.github.io/us-holidays/
v1.x
https://github.com/geoffreyrose/us-holidays/blob/8717adad63c489e3ef65619e4272bb9b21718078/README.md
支持的假日
- 愚人节
- 武装部队纪念日
- 灰烬星期三
- 黑色星期五
- 圣诞节
- 圣诞前夕
- 五五节
- 哥伦布日
- 网络星期一
- 夏令时(结束)
- 夏令时(开始)
- 地球日
- 复活节
- 父亲节
- 国旗日
- 耶稣受难日
- 土拨鼠日
- 万圣节
- 光明节
- 独立日
- 原住民日
- 六月节
- 库瓦纳萨
- 劳动节
- 马丁·路德·金纪念日
- 阵亡将士纪念日
- 母亲节
- 新年
- 除夕夜
- 东正教复活节
- 棕榈主日
- 逾越节
- 爱国者日
- 珍珠港纪念日
- 总统日
- 犹太新年
- 圣帕特里克节
- 税收日
- 感恩节
- 情人节
- 退伍军人节
- 赎罪日
需求
- Carbon
- PHP 7.4+ | 8.0+
用法
使用 Composer
$ composer require geoffreyrose/us-holidays
<?php require 'vendor/autoload.php'; use USHolidays\Carbon;
不使用 Composer
<?php require 'path/to/nesbot/Carbon.php'; require 'path/to/geoffreyrose/Carbon.php'; use USHolidays\Carbon;
按年份获取假日
有关更多详细信息,请参阅 文档
$carbon = Carbon::create(2020, 1, 1); $holidays = $carbon->getHolidaysByYear('all'); // [ // { // "name": "New Year's Day", // string // "date": "2020-01-01 00:00:00", // DateTime object // "bank_holiday": true, // boolean // "days_away": 0, // int // }, // { // "name": "Martin Luther King Jr. Day", // string // "date": "2020-01-20 00:00:00", // DateTime object // "bank_holiday": true, // boolean // "days_away": 19 // int // } // ... // ]
按天数获取假日
有关更多详细信息,请参阅 文档
$carbon = Carbon::create(2020, 5, 28); $holidays = $carbon->getHolidaysInDays(300, 'all'); // or $holidays = $carbon->getHolidaysInDays(300); // [ // { // "name": "Flag Day", // string // "date": "2020-06-14 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 17 // int // }, { // "name": "Juneteenth", // string // "date": "2020-06-19 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 22 // int // }, // ... // ]
按年份获取假日
有关更多详细信息,请参阅 文档
$carbon = Carbon::create(2020, 8, 18); $holidays = $carbon->getHolidaysInYears(1, 'all'); // or $holidays = $carbon->getHolidaysInYears(1); // [ // { // "name": "Labor Day", // string // "date": "2020-09-07 00:00:00", // DateTime object // "bank_holiday": true,// boolean // "days_away": 20 // int // }, { // "name": "Patriot Day", // string // "date": "2020-09-11 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 24 // int // }, // ... // ]
获取假日日期
有关更多详细信息,请参阅 文档
$carbon = Carbon::create(2020, 1, 1); $carbon->getAprilFoolsDayHoliday(); // { // "name": "April Fool's Day", // "date": "2020-04-01 00:00:00", // "bank_holiday": false // "days_away": 91 // }
$carbon->getAprilFoolsDayHoliday(); $carbon->getArmedForcesDayHoliday(); $carbon->getAshWednesdayHoliday(); $carbon->getBlackFridayHoliday(); $carbon->getChristmasDayHoliday(); $carbon->getChristmasEveHoliday(); $carbon->getCincoDeMayoHoliday(); $carbon->getColumbusDayHoliday(); $carbon->getCyberMondayHoliday(); $carbon->getDaylightSavingEndHoliday(); $carbon->getDaylightSavingStartHoliday(); $carbon->getEarthDayHoliday(); $carbon->getEasterHoliday(); $carbon->getFathersDayHoliday(); $carbon->getFlagDayHoliday(); $carbon->getGoodFridayHoliday(); $carbon->getGroundhogDayHoliday(); $carbon->getHalloweenHoliday(); $carbon->getHanukkahHoliday(); $carbon->getIndependenceDayHoliday(); $carbon->getIndigenousPeoplesDayHoliday(); $carbon->getJuneteenthHoliday(); $carbon->getKwanzaaHoliday(); $carbon->getLaborDayHoliday(); $carbon->getMLKDayHoliday(); $carbon->getMemorialDayHoliday(); $carbon->getMothersDayHoliday(); $carbon->getNewYearsDayHoliday(); $carbon->getNewYearsEveHoliday(); $carbon->getOrthodoxEasterHoliday(); $carbon->getPalmSundayHoliday(); $carbon->getPassoverHoliday(); $carbon->getPatriotDayHoliday(); $carbon->getPearlHarborRemembranceDayHoliday(); $carbon->getPresidentsDayHoliday(); $carbon->getRoshHashanahHoliday(); $carbon->getStPatricksDayHoliday(); $carbon->getTaxDayHoliday(); $carbon->getThanksgivingHoliday(); $carbon->getValentinesDayHoliday(); $carbon->getVeteransDayHoliday(); $carbon->getYomKippurHoliday();
isHoliday()
有关更多详细信息,请参阅 文档
检查日期是否为假日。返回 布尔值
$carbon = new Carbon(); $carbon = Carbon::create(2018, 12, 25); $carbon->isHoliday(); // bool (true)
isBankHoliday()
有关更多详细信息,请参阅 文档
检查日期是否为银行假日以及观察该假日的日期。例如,如果假日落在星期天,则假日将在第二天(星期一)观察。注意:银行假日只有星期一至星期五。始终在周末的假日不被视为银行假日。同时,周六的银行假日也不在之前星期五观察。返回 布尔值
$carbon = Carbon::create(2020, 1, 1); // New Years Day - Wednesday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2020, 1, 2); $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2018, 03, 17); // St Patrick's Day $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2018, 12, 25); // Christmas - Tuesday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2016, 12, 25); // Christmas - Sunday $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2016, 12, 26); // Monday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2021, 12, 25); // Christmas - Saturday $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2021, 12, 24); // Friday $carbon->isBankHoliday(); // boolean (false)
isFederalHoliday()
有关更多详细信息,请参阅 文档
检查日期是否为联邦假日以及观察该假日的日期。例如,如果假日落在星期六,则假日将在前一天(星期五)观察。或者如果假日落在星期天,则假日将在下一天(星期一)观察。注意:联邦假日只有星期一至星期五。始终在周末的假日不被视为银行假日。返回 布尔值
$carbon = Carbon::create(2020, 1, 1); // New Years Day - Wednesday $carbon->isFederalHoliday(); // boolean (true) $carbon = Carbon::create(2020, 1, 2); $carbon->isFederalHoliday(); // boolean (false) $carbon = Carbon::create(2018, 03, 17); // St Patrick's Day $carbon->isFederalHoliday(); // boolean (false) $carbon = Carbon::create(2018, 12, 25); // Christmas - Tuesday $carbon->isFederalHoliday(); // boolean (true) $carbon = Carbon::create(2016, 12, 25); // Christmas - Sunday $carbon->isFederalHoliday(); // boolean (false) $carbon = Carbon::create(2016, 12, 26); // Monday $carbon->isFederalHoliday(); // boolean (true) $carbon = Carbon::create(2021, 12, 25); // Christmas - Saturday $carbon->isFederalHoliday(); // boolean (false) $carbon = Carbon::create(2021, 12, 24); // Friday $carbon->isFederalHoliday(); // boolean (true)
获取假日名称
请参阅文档获取更多详细信息
如果日期是假日,则获取名称。返回
$carbon = Carbon::create(2018, 12, 31); $carbon->getHolidayName(); // New Year's Eve
添加自定义假日
请参阅文档获取更多详细信息
$carbon = new Carbon(); $carbon->addHoliday([ 'name' => "Spongebob's Birthday", 'date' => Carbon::create(1986, 7, 14), 'bank_holiday' => false ]); $carbon->addHoliday([ 'name' => "Q1 Tax Payments", 'date' => function() use($carbon) { $q1 = Carbon::create($carbon->year, 4, 15, 0, 0, 0); if($q1->isBankHoliday()) { $q1->addDay(); if($q1->isWeekend()) { $q1->next(Carbon::MONDAY); } } if($q1->isWeekend()) { $q1->next(Carbon::MONDAY); } if($q1 < $carbon) { $q1 = Carbon::create($carbon->year + 1, 4, 15, 0, 0, 0); if($q1->isBankHoliday()) { $q1->addDay(); if($q1->isWeekend()) { $q1->next(Carbon::MONDAY); } } if($q1->isWeekend()) { $q1->next(Carbon::MONDAY); } } if($q1->isBankHoliday()) { $q1->addDay(); } return $q1; }, 'bank_holiday' => false ]);
附加示例
$carbon = Carbon::create(2016, 12, 25); // Sunday $carbon->getHolidayName(); // Christmas Day $carbon = Carbon::create(2016, 12, 26); // Monday $carbon->getHolidayName(); // Christmas Day (Observed), Kwanzaa
贡献
- 克隆存储库并安装依赖项。
composer install
- 运行测试
使用本地安装的carbon版本
$ ./vendor/bin/phpunit
// or with coverage
$ XDEBUG_MODE=coverage ./vendor/bin/phpunit
测试与Carbon v2
$ ./tests/carbon-2.sh
测试与Carbon v3
$ ./tests/carbon-3.sh
看看它在野外的使用
GBPN - 持续的美国假日日历
Canny Armadillo - 下12个月