i-avatar777 / widget-kolada-dar1
用于绘制夏季科拉达达日历的小工具
Requires
- php: >=5.4.0
- i-avatar777/service-date-rus: *
- yiisoft/yii2: *
Requires (Dev)
README
用于绘制夏季科拉达达日历的小工具
符合标准 BOST 000006-7528 "关于俄历程序代码中日期和时间格式的规定" http://avr3.ru/doHmJp
输出月份的表格日历,视觉上如下:右边的月份有41天,左边的月份有40天,共有5行,最后一行对应一个月份
一个带标题的第一块示例
安装
使用 composer 安装库
{ "require": { "i-avatar777/widget-kolada-dar1": "*" } }
或者使用以下命令
composer require i-avatar777/widget-kolada-dar1
使用示例
$v = \iAvatar777\widgets\KoladaDar\KoladaDar::init([
'dayStart' => 9,
]);
echo $v->run();
dayStart
- 夏季开始的第一天是星期几,从1到9
带表格样式参数的扩展启动视图
use iAvatar777\widgets\KoladaDar\KoladaDar;
$v = KoladaDar::init([
'dayStart' => 9,
'isSacral' => true,
'optionsWeek' => [
1 => ['style' => 'background-color: #000000; color: #ffffff;'],
2 => ['style' => 'background-color: #ffa6a6;'],
3 => ['style' => 'background-color: #ffd2a6;'],
4 => ['style' => 'background-color: #ffffa6;'],
5 => ['style' => 'background-color: #a7fca4;'],
6 => ['style' => 'background-color: #a6a6ff;'],
7 => ['style' => 'background-color: #bda5d1;'],
8 => ['style' => 'background-color: #d4a6f7;'],
9 => ['style' => 'background-color: #ffffff;'],
],
'optionsColumn' => [
1 => ['style' => 'width: 90px;'],
2 => ['style' => 'width: 90px;'],
3 => ['style' => 'width: 90px;'],
4 => ['style' => 'width: 90px;'],
5 => ['style' => 'width: 90px;'],
6 => ['style' => 'width: 90px;'],
],
'weekDays' => [
1 => 'Понедельникъ',
2 => 'Вторникъ',
3 => 'Третейникъ',
4 => 'Четверикъ',
5 => 'Пятница',
6 => 'Шестица',
7 => 'Седьмица',
8 => 'Осьмица',
9 => 'Неделя',
],
'emptyCell' => ' ',
'isDrawIds' => true,
'isDrawDateGrigor' => true,
'DateGrigorFormat' => 'd.m.Y',
'tableOptions' => ['class' => 'table table-hover table-striped'],
'monthNames' => [
1 => '1 Рамхатъ',
2 => '2 Айлѣтъ',
3 => '3 Бейлѣтъ',
4 => '4 Гэйлѣтъ',
5 => '5 Дайлѣтъ',
6 => '6 Элѣтъ',
7 => '7 Вэйлѣтъ',
8 => '8 Хейлѣтъ',
9 => '9 Тайлѣтъ',
],
'cellFormat' => function (DateTime $d, $options) {
$day = $options['day'];
return $day . KoladaDar::tag('span', ' / ' . \iAvatar777\services\DateRus\DateRus::format('j K', $d->format('U')), ['style' => 'color:#ccc; font-size:70%;']);
},
]);
echo $v->run();
optionsWeek
- 数组,包含为每周的 tr
标签的每个选项,索引可以是1到9
optionsColumn
- 数组,包含为每月列的 th
标签的每个选项,索引可以是1到6
weekDays
- 数组,包含周名称,索引可以是1到9
isSacral
- 标志。这是圣年吗?如果是,则所有月份都将有41天
emptyCell
- 用于显示空日单元格的内容
isDrawIds
- bool - 标志。是否向 td 标签添加 id 属性(格式 day_[m]_[d])?
isDrawDateGrigor
- bool - 标志。是否向每天添加格列高利日期提示?true - 添加,false - 不添加。默认添加 - false。
DateGrigorFormat
- string - 如果 isDrawDateGrigor = true,则提示的日期格式。默认 PHP date() d.m.Y
DateGrigorClass
- string - 如果 $isDrawDateGrigor=true,则格里高利日期的类名
DateGrigorFirst
- string - 格里高利日历年第一天的日期,格式为 'Y-m-d',默认为当前年份
monthNames
- array - 包含月份名称的数组,索引从1到9
cellFormat
- string | callable - 根据BOST #000006-7528为月份单元格指定的日期格式。可以是格式或函数。如果以函数的形式指定,则格式如下 function(\DateTime $d, $arr),其中 $arr
是包含俄历月份天数的数组,第二个参数将在以后补充到完整的俄历日期标准。
tableOptions
- array - table 标签的属性
将输出如下日历
如何计算夏季开始的日子
开发中。
- 对于7528年夏季(2019-2020),天数=9
- 对于7529年夏季(2020-2021),天数=5
如果使用 bootstrap
如果使用 bootstrap,请设置 tableOptions
= ['class' => 'table table-hover table-striped']
。示例
$v = \iAvatar777\widgets\KoladaDar\KoladaDar::init([
'dayStart' => 9,
'tableOptions' => ['class' => 'table table-hover table-striped'],
]);
echo $v->run();
链接
斯拉夫-阿瓦尔日历 http://energodar.net/ha-tha.php?str=vedy%2Fkalendar
标准 BOST #000006-7528 关于俄历程序代码中日期和时间格式的规定 https://github.com/i-avatar777/kon/blob/master/%D0%91%D0%9E%D0%A1%D0%A2/%D0%91%D0%9E%D0%A1%D0%A2000006-7528.md
作者和创造者
弗拉基米尔·阿赫兰涅尔斯基 @ArhandelSky999