sunaoka / holidays
Holiday calculation library
v1.5.0
2024-08-27 09:18 UTC
Requires
- php: ^5.5 || ^7.0 || ^8.0
Requires (Dev)
- composer/composer: ^1.0 || ^2.0
- mockery/mockery: ^0.9 || ^1.0
- nesbot/carbon: ^1.0 || ^2.0 || ^3.0
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- roave/security-advisories: dev-latest
- dev-develop
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.33
- v1.0.32
- v1.0.31
- v1.0.30
- v1.0.29
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- 1.0.6
- 1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-create-pull-request/patch
- dev-main
This package is auto-updated.
Last update: 2024-10-06 01:24:24 UTC
README
Supported Countries
Installation
composer require sunaoka/holidays
Basic Usage
Finds whether a date is a holiday
use Sunaoka\Holidays\Holidays; // Is January 1, 2021 a holiday in the United States (US)? $holidays = new Holidays('US'); $holidays->isHoliday('2021-01-01'); // => true
Returns a list of holidays
use Sunaoka\Holidays\Holidays; // Returns United States (US) Holidays in 2021 $holidays = new Holidays('US'); $holidays->getHolidays(2021); // => // array(36) { // [0] => // class Sunaoka\Holidays\Holiday#1 (4) { // protected $name => // string(14) "New Year's Day" // public $date => // string(26) "2021-01-01 00:00:00.000000" // public $timezone_type => // int(3) // public $timezone => // string(3) "UTC" // } // [1] => // class Sunaoka\Holidays\Holiday#2 (4) { // protected $name => // string(26) "Martin Luther King Jr. Day" // public $date => // string(26) "2021-01-18 00:00:00.000000" // public $timezone_type => // int(3) // public $timezone => // string(3) "UTC" // } // : // : // : // [35] => // class Sunaoka\Holidays\Holiday#36 (4) { // protected $name => // string(14) "New Year's Eve" // public $date => // string(26) "2021-12-31 00:00:00.000000" // public $timezone_type => // int(3) // public $timezone => // string(3) "UTC" // }
Returns holidays for a given date range
use Sunaoka\Holidays\Holidays; // Return United States (US) holidays from 2021-01-01 to 2021-01-07 $holidays = new Holidays('US'); $holidays->between(date('2021-01-01'), date('2021-01-07')); // array(1) { // [0] => // class Sunaoka\Holidays\Holiday#1 (4) { // protected $name => // string(14) "New Year's Day" // public $date => // string(26) "2021-01-01 00:00:00.000000" // public $timezone_type => // int(3) // public $timezone => // string(3) "UTC" // } // }
Add custom holiday
use Sunaoka\Holidays\Holidays; // Add 2021-05-05 as my birthday $holidays = new Holidays('US'); $holidays->addHoliday(new Holiday('2021-05-05', 'My Birthday 🎉')); $holidays->isHoliday('2021-05-05'); // => true
Update holiday data to latest
php ./vendor/bin/holiday-update
Remove unused country holidays
To avoid shipping unused country holidays, you can run the Sunaoka\\Holidays\\Task\\Composer::removeHolidays
task and specify the services you want to keep in composer.json
:
{ "require": { "sunaoka/holidays": "^1.1" }, "scripts": { "pre-autoload-dump": [ "Sunaoka\\Holidays\\Task\\Composer::removeHolidays" ] }, "extra": { "sunaoka/holidays": [ "jp", "us" ] } }
In this example, when running composer update
or composer install
, all holidays except Japan (jp
) and United States of America (us
) will be removed.