gozoro / yii2-russian-calendar
基于xmlcalendar.ru的俄罗斯联邦生产日历。基于xmlcalendar.ru的俄罗斯工作日历。
v0.0.1
2020-02-14 16:41 UTC
Requires
- php: >=5.5.9
- gozoro/russian-calendar: ~0.0.1
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2024-09-15 02:52:23 UTC
README
基于xmlcalendar.ru的PHP Yii2生产日历组件 gozoro/russian-calendar。用于PHP的Yii2组件,使用基于xmlcalendar.ru的俄罗斯工作日历 gozoro/russian-calendar。
安装
composer require gozoro/yii2-russian-calendar
配置
'components' => [ ... 'calendar' => [ 'class' => 'gozoro\russian_calendar\components\RussianCalendar' ], ... ],
使用
$calendar = Yii::$app->calendar; $date = '2019-01-02'; print "Дата: ".$date."\n"; print "ЭТО РАБОЧИЙ ДЕНЬ? ".($calendar->checkWorkingDay($date)?"ДА":"НЕТ")."\n"; // НЕТ print "ЭТО ПОЛНЫЙ РАБОЧИЙ ДЕНЬ? ".($calendar->checkFullWorkingDay($date)?"ДА":"НЕТ")."\n"; // НЕТ print "ЭТО КОРОТКИЙ РАБОЧИЙ ДЕНЬ? ".($calendar->checkShortWorkingDay($date)?"ДА":"НЕТ")."\n"; // НЕТ print "ЭТО ВЫХОДНОЙ ДЕНЬ? ".($calendar->checkWeekend($date)?"ДА":"НЕТ")."\n"; // ДА print "ЭТО ПРАЗДНИЧНЫЙ ДЕНЬ? ".($calendar->checkHoliday($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文件缓存到@app/runtime/russian-calendar目录中,以便在每次调用时不需要对xmlcalendar.ru进行请求。
可以在配置中明确指定缓存参数
'components' => [ ... 'calendar' => [ 'class' => 'gozoro\russian_calendar\components\RussianCalendar', 'cacheFolder' => '/home/user/mycache/russian-calendar', // директория для кэша, если не существует, то будет создана автоматически 'cacheDuration' => 3600, // время жизни кэша в секундах 'fileMode' => 0664, // права на файлы кэша 'dirMode' => 0775, // права на директорию кэша 'cacheEnable' => true, // включить/отключить использование кэша, по умолчанию true ], ... ],
本地化
默认情况下,组件使用项目语言
Yii::$app->language;
可以在配置中明确指定本地化
'components' => [ ... 'calendar' => [ 'class' => 'gozoro\russian_calendar\components\RussianCalendar', 'locale' => 'ru', ], ... ],
组件支持两种本地化: ru 和 en。