castorland / hu-holidays
Carbon DateTime Library 的匈牙利节假日包装器
1.0.0
2023-07-09 06:24 UTC
Requires
- php: ^8.0 || ^8.1 || ^8.2
- ext-calendar: *
- nesbot/carbon: ^2.67.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.5
- phpunit/phpunit: ^5|^6|^7.5|^8.0|^9.0
README
Carbon 对美国节日的支持
这扩展了 Carbon 并添加了对匈牙利节日的支持。(感谢 Geoffrey Rose 提供基本想法和代码。)
完整文档
v2.x https://castorland.github.io/hu-holidays/
支持的节假日
- 新年
- 圣诞前夜,狂欢节开始
- 世界文学日
- 世界宗教日
- 匈牙利文化日
- 大屠杀国际纪念日
- 公民日
- 谜题解谜师世界日
- 抗癌世界日
- 情人节
- 中国新年开始
- 灰烬星期三
- 气象学春天开始
- 节能日
- 国际妇女节
- 国际股票日
- 1848 年革命纪念日
- 世界水日
- 愚人节
- 耶稣受难日
- 复活节星期一
- 世界卫生日
- 匈牙利诗歌日
- 地球日
- 蜜蜂日
- 劳动节
- 太阳日
- 母亲节
- 鸟类和树木日
- 国际家庭日
- 国际男子节
- 挑战日
- 儿童节
- 复活节星期一
- 世界环境日
- 玛尔塔节
- 父亲节
- 塞梅尔维斯节
- 月亮日
- 圣母玛利亚节
- 国家成立日
- 欧洲无车日
- 阿雷达烈士纪念日
- 地球日
- 1956 年革命纪念日
- 秋玫瑰革命
- 万圣节
- 亡灵节
- 黑色星期五
- 网络星期一
- 诺贝尔奖设立日
- 平安夜
- 圣诞节
- 圣诞节第二天
- 新年除夕
要求
- Carbon
- PHP 8.0+
使用方法
使用 Composer
composer require castorland/hu-holidays
<?php require 'vendor/autoload.php'; use Castorland\HUHolidays\Carbon;
不使用 Composer
<?php require 'path/to/nesbot/Carbon.php'; require 'path/to/castorland/Carbon.php'; use Castorland\HUHolidays\Carbon;
按年份获取节假日
请参阅 文档 了解更多详情
$carbon = Carbon::create(2020, 1, 1); $holidays = $carbon->getHolidaysByYear('all'); // [ // { // "name": "Újév", // string // "date": "2020-01-01 00:00:00", // DateTime object // "bank_holiday": true, // boolean // "days_away": 0, // int // }, // { // "name": "Vízkereszt, a farsang kezdete", // string // "date": "2020-01-06 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 5 // int // } // ... // ]
按天数获取节假日
请参阅 文档 了解更多详情
$carbon = Carbon::create(2020, 5, 2); $holidays = $carbon->getHolidaysInDays(300, 'all'); // or $holidays = $carbon->getHolidaysInDays(300); // [ // { // "name": "A Nap napja", // string // "date": "2020-05-03 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 1 // int // }, { // "name": "Madarak és Fák Napja", // string // "date": "2020-05-10 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 8 // int // }, // ... // ]
按年份获取节假日
请参阅 文档 了解更多详情
$carbon = Carbon::create(2020, 8, 18); $holidays = $carbon->getHolidaysInYears(1, 'all'); // or $holidays = $carbon->getHolidaysInYears(1); // [ // { // "name": "Az államalapítás ünnepe", // string // "date": "2020-08-20 00:00:00", // DateTime object // "bank_holiday": true,// boolean // "days_away": 2 // int // }, { // "name": "Európai autómentes nap", // string // "date": "2020-09-22 00:00:00", // DateTime object // "bank_holiday": false, // boolean // "days_away": 35 // int // }, // ... // ]
获取节假日日期
请参阅 文档 了解更多详情
$carbon = Carbon::create(2020, 1, 1); $carbon->getBolondokNapjaHoliday(); // { // "name": "Bolondok napja", // "date": "2020-04-01 00:00:00", // "bank_holiday": false // "days_away": 91 // }
$carbon->getACivilekNapjaHoliday(); $carbon->getACsaladNemzetkoziNapjaHoliday(); $carbon->getAFoldNapja(); $carbon->getAHoldNapja(); $carbon->getAHolokausztNemzetkoziEmleknapjaHoliday(); $carbon->getAKinaiUjevKezdeteHoliday(); $carbon->getAMagyarKolteszetNapjaHoliday(); $carbon->getAMagyarKulturaNapjaHoliday(); $carbon->getAMehekNapjaHoliday(); $carbon->getAMeteorologiaiTavaszKezdeteHoliday(); $carbon->getAMunkaUnnepeHoliday(); $carbon->getANapNapjaHoliday(); $carbon->getANobelDijAlapitasanakNapjaHoliday(); $carbon->getAnyakNapjaHoliday(); $carbon->getApakNapjaHoliday(); $carbon->getAVallasokVilagnapjaHoliday(); $carbon->getAVilagirodalomNapjaHoliday(); $carbon->getAVizVilagnapjaHoliday(); $carbon->getAz1848asForradalomUnnepeHoliday(); $carbon->getAz1956osForradalomUnnepeHoliday(); $carbon->getAzAllamalapitasUnnepeHoliday(); $carbon->getAzAradiVertanukEmleknapjaHoliday(); $carbon->getAzEgeszsegVilagnapjaHoliday(); $carbon->getBlackFridayHoliday(); $carbon->getBolondokNapjaHoliday(); $carbon->getCyberMondayHoliday(); $carbon->getEnergiatakarekossagiVilagnapHoliday(); $carbon->getEuropaiAutomentesNapHoliday(); $carbon->getFoldunkertVilagnapHoliday(); $carbon->getGyerenapHoliday(); $carbon->getHalottakNapjaHoliday(); $carbon->getHamvazoszerdaHoliday(); $carbon->getHusvetHetfoHoliday(); $carbon->getKaracsonyHoliday(); $carbon->getKaracsonyMasnapHoliday(); $carbon->getKihivasNapjaHoliday(); $carbon->getKornyezetvedelmiVilagnapHoliday(); $carbon->getMadarakEsFakNapjaHoliday(); $carbon->getMedardNapjaHoliday(); $carbon->getMindenszentekHoliday(); $carbon->getNagyboldogasszonyNapjaHoliday(); $carbon->getNagypentekHoliday(); $carbon->getNemzetkoziFerfinapHoliday(); $carbon->getNemzetkoziPiNapHoliday(); $carbon->getNonapHoliday(); $carbon->getOszirozsasForradalomHoliday(); $carbon->getPunkosdHetfoHoliday(); $carbon->getRakellenesVilagnapHoliday(); $carbon->getRejtvenyfejtokVilagnapjaHoliday(); $carbon->getSemmelweisNapHoliday(); $carbon->getSzentesteHoliday(); $carbon->getSzilveszterHoliday(); $carbon->getUjevHoliday(); $carbon->getVizkeresztaFarsangKezdeteHoliday();
isHoliday()
请参阅 文档 了解更多详情
检查日期是否为节假日。返回 boolean
$carbon = new Carbon(); $carbon = Carbon::create(2018, 12, 25); $carbon->isHoliday(); // bool (true)
isBankHoliday()
请参阅 文档 了解更多详情
检查日期是否为银行假日以及观察该日期。例如,如果节假日落在星期日,则节假日将在第二天(星期一)观察。注意:银行假日仅为星期一至星期五。始终在周末的节假日不被视为银行假日。此外,周六的银行假日也不在之前星期五观察。返回 boolean
$carbon = Carbon::create(2020, 1, 1); // Újév - Wednesday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2020, 1, 2); $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2020, 03, 15); // Az 1848-as forradalom ünnepe $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2018, 12, 25); // Karácsony - Tuesday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2016, 12, 25); // Karácsony - Sunday $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2016, 12, 26); // Karácsony Másnap - Monday $carbon->isBankHoliday(); // boolean (true) $carbon = Carbon::create(2021, 12, 25); // Karácsony - Saturday $carbon->isBankHoliday(); // boolean (false) $carbon = Carbon::create(2021, 12, 24); // Szenteste - Friday $carbon->isBankHoliday(); // boolean (false)
获取假日名称
查看更多详情,请参阅文档
如果日期是假日,则返回名称。返回类型为
$carbon = Carbon::create(2018, 12, 31); $carbon->getHolidayName(); // Szilveszter
添加自定义假日
查看更多详情,请参阅文档
$carbon = new Carbon(); $carbon->addHoliday([ 'name' => "A kockásfülű nyúl kezdete", 'date' => Carbon::create(1977, 8, 26), 'bank_holiday' => false ]); $carbon->addHoliday([ 'name' => "SZJA Bevallás", 'date' => function() use($carbon) { $q1 = Carbon::create($carbon->year, 5, 22, 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, 5, 22, 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(); // Karácsony $carbon = Carbon::create(2016, 12, 26); // Monday $carbon->getHolidayName(); // Karácsony Másnap
贡献
- 克隆仓库并安装依赖项。
composer install
- 运行测试
使用本地安装的carbon版本
$ ./vendor/bin/phpunit
// or with coverage
$ XDEBUG_MODE=coverage ./vendor/bin/phpunit
针对Carbon v2进行测试
./tests/carbon-2.sh