meysampg/yii2-intldatebehavior

此包已被废弃,不再维护。未建议替代包。

在找到ActiveRecord后的自动更改日期系统

安装数: 7,295

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 1

开放问题: 0

类型:yii2-extension

v1.1.1 2016-11-25 11:27 UTC

This package is auto-updated.

Last update: 2021-07-15 14:20:15 UTC


README

🟥⚠️ 此包已被废弃。请选择其他包或从仓库分叉并告知我 p.g.meysam [at] gmail [dot] com 以在Packagist中引用您的包 ⚠️🟥

在找到ActiveRecord后的自动更改日期系统。 实际上它只是在表示上转换日期和时间系统,保持您的模型干净。因此,如果您需要一个转换器来更改时间并将其保存到数据库中,您可以使用 IntlDate 特性;)。

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

composer require meysampg/yii2-intldatebehavior "*"

或者将以下内容添加到您的 composer.json 文件的 require 部分:

"meysampg/yii2-intldatebehavior": "*"

```json

使用

安装扩展后,只需在您的类中通过 use meysampg\behaviors\IntlDateBehavior 使用它,并将其作为行为附加到您的ActiveRecord模型

public function behaviors()
{
    return [
        IntlDateBehavior::className(),
    ];
}

此外,在您的模型中,您必须将 timestamp 字段的规则从 integer 更改为 safe

默认情况下,行为会尝试以您期望的方式显示 created_atupdated_at 字段,它们都具有 timestamp 类型。如果您想选择其他属性,可以将它们作为数组(例如 ['time1', 'time2', 'time3'])分配给 timestampAttributes 属性。

配置

此行为的配置可以通过两种方式实现。第一种是使用Yii2配置数组,例如

public function behaviors()
{
    return [
        [
            'class' => IntlDateBehavior::className(),
            'timestampAttributes' => ['create_time', 'update_time', 'another_time'],
            'calendar' => 'persian',
            'format' => 'php:d F Y، H:i:s',
            'locale' => 'fa',
            'tz' => 'Asia/Tehran'
        ],
    ];
}

这是一个本地配置。第二种方式是当您想将此行为用于具有相同配置的多个模型时,您应该将其作为行为添加到模型

public function behaviors()
{
    return [
        IntlDateBehavior::className(),
    ];
}

并将配置放入 params.php 文件中。以下是我的 params.php 示例:

<?php

return [
    // some params are here
    'dateTimeFormat' => 'yyyy/MM/dd, HH:mm:ss',
    'dateTimeCalendar' => 'persian',
    'dateTimeLocale' => 'fa',
    'dateTimeZone' => 'Asia/Tehran',
];

通过这种方式,您必须为日期时间格式分配一个值 'dateTimeFormat',为日历系统分配 'dateTimeCalendar',为显示日期时间信息的区域分配 'dateTimeLocale',以及为必须显示日期时间的区域分配 'dateTimeZone'

支持的日历

感谢 intldate 和 php 的 intl 扩展,此行为支持以下日历:

  • 波斯
  • 公历
  • 日本
  • 佛教
  • 中国
  • 印度
  • 伊斯兰
  • 希伯来
  • 科普特
  • 埃塞俄比亚

贡献

报告错误或进行修改并提交拉取请求!