gozoro/yii2-russian-calendar

基于xmlcalendar.ru的俄罗斯联邦生产日历。基于xmlcalendar.ru的俄罗斯工作日历。

安装: 93

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

v0.0.1 2020-02-14 16:41 UTC

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',
	],

	...

],

组件支持两种本地化: ruen