This extends Carbon and adds support for several US holidays.
- New Years Day
- Martin Luther King Jr. Day
- Groundhog Day
- Valentine's Day
- Presidents Day
- Daylight Saving (Start)
- St. Patrick's Day
- April Fool's Day
- Mother's Day
- Armed Forces Day
- Memorial Day
- Flag Day
- Father's Day
- Independence Day
- Labor Day
- Patriot Day
- Columbus Day
- Halloween
- Veterans Day
- Thanksgiving
- Daylight Saving (End)
- Pearl Harbor Remembrance Day
- Christmas Eve
- Christmas Day
- New Years Eve
- Carbon
- PHP 5.5+
$ composer require geoffreyrose/us-holidays
<?php
require 'vendor/autoload.php';
use USHolidays\Carbon;
<?php
require 'path/to/nesbot/Carbon.php';
require 'path/to/geoffreyrose/Carbon.php';
use USHolidays\Carbon;
Check if date is holiday. Returns boolean
$carbon = new Carbon();
$carbon = Carbon::create(2018, 12, 25);
$carbon->isHoliday(); // bool (true)
Get name if date is holiday. Returns string
or false
$carbon = new Carbon();
$carbon = Carbon::create(2018, 12, 31);
$carbon->getHolidayName(); // New Year's Eve
Get date for a specific holiday. Returns string
$carbon = new Carbon();
$carbon = Carbon::create(2018, 1, 1);
$carbon->getNewYearsDayHoliday(); // 2018-01-01 00:00:00
$carbon->getMLKDayHoliday(); // 2018-01-15 00:00:00
$carbon->getGroundhogDayHoliday(); // 2018-02-02 00:00:00
$carbon->getValentinesDayHoliday(); // 2018-02-14 00:00:00
$carbon->getPresidentsDayHoliday(); // 2018-02-19 00:00:00
$carbon->getDaylightSavingStartHoliday(); // 2018-03-11 00:00:00
$carbon->getStPatricksDayHoliday(); // 2018-03-17 00:00:00
$carbon->getAprilFoolsDayHoliday(); // 2018-04-01 00:00:00
$carbon->getMothersDayHoliday(); // 2018-05-13 00:00:00
$carbon->getArmedForcesDayHoliday(); // 2018-05-19 00:00:00
$carbon->getMemorialDayHoliday(); // 2018-05-28 00:00:00
$carbon->getFlagsDayHoliday(); // 2018-06-14 00:00:00
$carbon->getFathersDayHoliday(); // 2018-06-17 00:00:00
$carbon->getIndependenceDayHoliday(); // 2018-07-04 00:00:00
$carbon->getLaborDayHoliday(); // 2018-09-03 00:00:00
$carbon->getPatriotsDayHoliday(); // 2018-09-11 00:00:00
$carbon->getColumbusDayHoliday(); // 2018-10-08 00:00:00
$carbon->getHalloweenDayHoliday(); // 2018-10-31 00:00:00
$carbon->getDaylightSavingEndHoliday(); // 2018-11-04 00:00:00
$carbon->getVeteransDayHoliday(); // 2018-11-11 00:00:00
$carbon->getThanksgivingHoliday(); // 2018-11-22 00:00:00
$carbon->getPearlHarborRemembranceHoliday(); // 2018-12-07 00:00:00
$carbon->getChristmasEveHoliday(); // 2018-12-24 00:00:00
$carbon->getChristmasDayHoliday(); // 2018-12-25 00:00:00
$carbon->getNewYearsEveHoliday(); // 2018-12-31 00:00:00
Check if date is a Bank Holiday and the day it is observed on. I.E. if the holiday falls on Saturday, the holiday is observed the previous day (Friday). Or if a holiday falls on Sunday, the holiday is observed the next day (Monday). Note: Bank holidays are Monday - Friday Only. So Holidays that are always on weekends are not consider bank holidays. Returns boolean
$carbon = new Carbon();
$carbon = Carbon::create(2018, 03, 17); // St Patrick's Day
$carbon->isBankHoliday(); // bool (false)
$carbon = new Carbon();
$carbon = Carbon::create(2018, 12, 25); // Tuesday
$carbon->isBankHoliday(); // bool (true)
$carbon = new Carbon();
$carbon = Carbon::create(2016, 12, 25); // Sunday
$carbon->isBankHoliday(); // bool (false)
$carbon = new Carbon();
$carbon = Carbon::create(2016, 12, 26); // Monday
$carbon->isBankHoliday(); // bool (true)
$carbon = new Carbon();
$carbon = Carbon::create(2018, 01, 01);
$carbon->getIndependenceDayHoliday()->getHolidayName(); // Independence Day
$carbon = new Carbon();
$carbon = Carbon::create(2016, 12, 25); // Sunday
$carbon->getHolidayName(); // Christmas Day
$carbon = new Carbon();
$carbon = Carbon::create(2016, 12, 26); // Monday
$carbon->getHolidayName(); // Christmas Day (Observed)