vsavritsky / russian-calendar
基于 xmlcalendar.ru 的俄罗斯联邦生产日历。基于 xmlcalendar.ru 的俄语工作日历。
1.1
2020-04-16 15:59 UTC
Requires
- php: >=7.0
- ext-curl: *
This package is not auto-updated.
Last update: 2024-09-27 13:40:28 UTC
README
基于 xmlcalendar.ru 的俄罗斯联邦生产日历(PHP版)。基于 xmlcalendar.ru 的俄语工作日历(PHP版)。
安装
composer require vsavritsky/russian-calendar
使用
$calendar = new \Vsavritsky\RussianCalendar\RussianCalendar('ru'); $date = '2019-01-02'; print "Дата: ".$date."\n"; print "ЭТО РАБОЧИЙ ДЕНЬ? ".($calendar->isWorkingDay($date) ? "ДА" : "НЕТ")."\n"; // НЕТ print "ЭТО ПОЛНЫЙ РАБОЧИЙ ДЕНЬ? ".($calendar->isFullWorkingDay($date)?"ДА":"НЕТ")."\n"; // НЕТ print "ЭТО КОРОТКИЙ РАБОЧИЙ ДЕНЬ? ".($calendar->isShortWorkingDay($date)?"ДА":"НЕТ")."\n"; // НЕТ print "ЭТО ВЫХОДНОЙ ДЕНЬ? ".($calendar->isFullWorkingDay($date)?"ДА":"НЕТ")."\n"; // ДА print "ЭТО ПРАЗДНИЧНЫЙ ДЕНЬ? ".($calendar->isHoliday($date)?"ДА":"НЕТ")."\n"; // ДА print "НАЗВАНИЕ ПРАЗДНИКА: ".$calendar->getHolidayName($date)."\n"; // Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ) print "СЛЕДУЮЩИЙ РАБОЧИЙ ДЕНЬ: ".$calendar->getNextWorkingDay($date)."\n"; // 2019-01-09
周末
默认情况下,周六和周日被视为周末。这可以通过在调用方法时指定周末日来更改。在这种情况下,只有指定的星期几将被视为周末。
$my_weekends = [0]; // выходной только воскресенье, суббота рабочий день $calendar->checkWorkingDay($date, $my_weekends);
周末和假期的时长
还可以获取周末或假期连续日期的列表。
获取周末日期列表
$weekends = [0,6]; // полный список print_r($calendar->getWeekendDateArray($date, $weekends, true); //Array //( // [0] => 2018-12-30 // [1] => 2018-12-31 // [2] => 2019-01-01 // [3] => 2019-01-02 // [4] => 2019-01-03 // [5] => 2019-01-04 // [6] => 2019-01-05 // [7] => 2019-01-06 // [8] => 2019-01-07 // [9] => 2019-01-08 //) // только даты больше чем $date и даты в формате d.m.Y print_r($calendar->getWeekendDateArray($date, $weekends, false, 'd.m.Y'); //Array //( // [0] => 03.01.2019 // [1] => 04.01.2019 // [2] => 05.01.2019 // [3] => 06.01.2019 // [4] => 07.01.2019 // [5] => 08.01.2019 //)
获取假期日期列表
// полный список print_r($calendar->getHolidayDateArray($date, true); // Array //( // [0] => 2019-01-01 // [1] => 2019-01-02 // [2] => 2019-01-03 // [3] => 2019-01-04 // [4] => 2019-01-05 // [5] => 2019-01-06 // [6] => 2019-01-07 // [7] => 2019-01-08 //) // только даты больше чем $date и даты в формате d.m.Y $holidayArray = $calendar->getHolidayDateArray($date, false, 'd.m.Y'; print_r($holidayArray); //Array //( // [0] => 03.01.2019 // [1] => 04.01.2019 // [2] => 05.01.2019 // [3] => 06.01.2019 // [4] => 07.01.2019 // [5] => 08.01.2019 //) // Сколько дней осталось отдыхать? print count($holidayArray); // 6
缓存
默认情况下,为了获取包含数据的 XML 文件,类会向 xmlcalendar.ru 发送请求。为了防止类对网站进行长时间的请求,可以本地缓存 XML 文件。为此,需要在构造函数中指定复制 XML 文件的目录路径和缓存时间(秒)。
$cache_folder = '/var/www/site/runtime/xmlcalendar'; $cache_duration = 60*60*24; // кэш файла на сутки $calendar = new \Vsavritsky\RussianCalendar\RussianCalendar('ru', $cache_folder, $cache_duration);
节假日的英文名称
$calendar = new \Vsavritsky\RussianCalendar\RussianCalendar('en');