Если вы делаете собственный php-календарь, вы должны сделать это вручную, создав массив выходных дней, может быть, это вам пригодится: https://en.wikipedia.org/wiki/List_of_holidays_by_country.
В официальной документации PHP есть скрипт для получения выходных в британском банке в год (проверьте здесь: http://php.net/manual/en/ref.calendar.php):
function calculateBankHolidays($yr) {
$bankHols = Array();
// New year's:
switch ( date("w", strtotime("$yr-01-01 12:00:00")) ) {
case 6:
$bankHols[] = "$yr-01-03";
break;
case 0:
$bankHols[] = "$yr-01-02";
break;
default:
$bankHols[] = "$yr-01-01";
}
// Good friday:
$bankHols[] = date("Y-m-d", strtotime( "+".(easter_days($yr) - 2)." days", strtotime("$yr-03-21 12:00:00") ));
...
Я думаю, что одним из лучших приближений было бы использование существующей библиотеки или использование пакета PEAR (http://pear.php.net/package/Date_Holidays), и тогда вы можете сделать что-то вроде (изменить Германия в Великобританию):
<?php
require_once "Date/Holidays.php";
$germany = &Date_Holidays::factory('Germany', 2004, 'en_EN');
if (Date_Holidays::isError($germany)) {
die('Factory was unable to produce driver-object');
}
$easter = &$germany->getHoliday('easter', 'de_DE');
if (!Date_Holidays::isError($easter)) {
print_r($easter->toArray());
}
?>
Надеюсь, это поможет!