This extends Carbon and adds support for Hungarian holidays. (Thanks for Geoffrey Rose for the base idea and code.)
v2.x https://castorland.github.io/hu-holidays/
- Újév
- Vízkereszt, a farsang kezdete
- A világirodalom napja
- A vallások világnapja
- A magyar kultúra napja
- A holokauszt nemzetközi emléknapja
- A civilek napja
- Rejtvényfejtők világnapja
- Rákellenes világnap
- Valentin-nap
- A kínai újév kezdete
- Hamvazószerda
- A meteorológiai tavasz kezdete
- Energiatakarékossági világnap
- Nőnap
- Nemzetközi pi nap
- Az 1848-as forradalom ünnepe
- A víz világnapja
- Bolondok napja
- Nagypéntek
- Húsvét hétfő
- Az egészség világnapja
- A magyar költészet napja
- A Föld napja
- A méhek napja
- A munka ünnepe
- A Nap napja
- Anyák napja
- Madarak és Fák Napja
- A család nemzetközi napja
- Nemzetközi férfinap
- Kihívás napja
- Gyereknap
- Pünkösdhétfő
- Környezetvédelmi világnap
- Medárd napja
- Apák napja
- Semmelweis-nap
- A Hold napja
- Nagyboldogasszony napja
- Az államalapítás ünnepe
- Európai autómentes nap
- Az aradi vértanúk emléknapja
- Földünkért világnap
- Az 1956-os forradalom ünnepe
- Őszirózsás forradalom
- Mindenszentek
- Halottak napja
- Black Friday
- Cyber Monday
- A Nobel-díj alapításának napja
- Szenteste
- Karácsony
- Karácsony másnap
- Szilveszter
- Carbon
- PHP 8.0+
composer require castorland/hu-holidays
<?php
require 'vendor/autoload.php';
use Castorland\HUHolidays\Carbon;
<?php
require 'path/to/nesbot/Carbon.php';
require 'path/to/castorland/Carbon.php';
use Castorland\HUHolidays\Carbon;
See documentation for more details
$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
// }
// ...
// ]
See documentation for more details
$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
// },
// ...
// ]
See documentation for more details
$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
// },
// ...
// ]
See documentation for more details
$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();
See documentation for more details
Check if date is holiday. Returns boolean
$carbon = new Carbon();
$carbon = Carbon::create(2018, 12, 25);
$carbon->isHoliday(); // bool (true)
See documentation for more details
Check if date is a Bank Holiday and the day it is observed on. I.E. if the holiday falls if a holiday falls on Sunday, the holiday is observed the next day (Monday). Note: Bank holidays are Monday - Friday Only. Holidays that are always on weekends are not consider bank holidays. Also holidays that are Bank Holidays but fall on Saturday are NOT observed on the previous Friday. Returns 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)
See documentation for more details
Get name if date is holiday. Returns string
or false
$carbon = Carbon::create(2018, 12, 31);
$carbon->getHolidayName(); // Szilveszter
See documentation for more details
$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
- Clone the repo and install dependencies.
composer install
- Run Tests
Use locally installed carbon version
$ ./vendor/bin/phpunit
// or with coverage
$ XDEBUG_MODE=coverage ./vendor/bin/phpunit
Test against Carbon v2
./tests/carbon-2.sh