vsavritsky/russian-calendar
Composer 安装命令:
composer require vsavritsky/russian-calendar
包简介
Производственный календарь РФ на основе xmlcalendar.ru. Russian working calendar based on the xmlcalendar.ru.
关键字:
README 文档
README
Производственный календарь РФ на основе xmlcalendar.ru для PHP. Russian working calendar based on the xmlcalendar.ru for 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');
vsavritsky/russian-calendar 适用场景与选型建议
vsavritsky/russian-calendar 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 48 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 03 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「calendar」 「russian」 「production」 「working」 「working-calendar」 「production-calendar」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 vsavritsky/russian-calendar 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vsavritsky/russian-calendar 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 vsavritsky/russian-calendar 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A modern PHP library for generating iCalendar v2.0 events
Load .env file into project environment, using same functions as Laravel
A powerful event calendar Tool for Laravel's Nova 5.
Versioned, environment-based Seeders in Laravel. Used while original does not update to Laravel 5.7
Check for holidays - localeaware
Rutils Symfony 2 bundle
统计信息
- 总下载量: 48
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-03-09