i-avatar777/widget-kolada-dar1

用于绘制夏季科拉达达日历的小工具

0.0.6 2020-03-25 20:15 UTC

This package is auto-updated.

Last update: 2024-09-26 07:04:59 UTC


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

Yii2 https://yiiframework.cn/

作者和创造者

弗拉基米尔·阿赫兰涅尔斯基 @ArhandelSky999