yii2 - yii2 时区格式化程序中的问题

标签 yii2

php.ini 中的时区是 UTC。系统时区是UTC。 yii defaultTimeZone 是 UTC。但是我的日期时间属性在保存到数据库之前被转换为我的时区“亚洲/加尔各答”。

例如:UTC 时间 12:00Hrs
我的输入 17.30hrs
我在 db 中期望的是 12:00 小时,而在 View 中是 17.30 小时
但是我在 db 中得到的是 17:30hrs,而我得到了 23:00hrs。

网页.php:

'formatter' => 
        [
            'class' => 'yii\i18n\Formatter',
            'dateFormat' => 'php:d-m-Y',
            'datetimeFormat' => 'php:d-m-Y H:i a',
            'timeFormat' => 'php:H:i A',
            'timeZone' => 'Asia/Kolkata',
        ],

最佳答案

您可以选择使用预定义格式保存特定时间戳值。因此,让我们假设您已将后端中的日期时间字段定义为整数,并且您想将其保存为整数。您可以像这样设置行为

public function behaviors()
{
    return [
        'timestamp' => [
            'class' => TimestampBehavior::className(),
            'attributes' => [
                ActiveRecord::EVENT_BEFORE_INSERT => 'creation_time',
                ActiveRecord::EVENT_BEFORE_UPDATE => 'update_time',
            ],
            'value' => function() { return date('U'); // unix timestamp },
        ],
    ];
}

您可以配置 yii\i18n\formatter控制您的全局日期格式以显示您的语言环境。您可以在您可以访问的配置文件中设置类似的内容
'formatter' => 
        [
            'class' => 'yii\i18n\Formatter',
            'dateFormat' => 'php:d-m-Y',
            'datetimeFormat' => 'php:d-m-Y H:i a',
            'timeFormat' => 'php:H:i A',
            'defaultTimeZone' OR 'timeZone' => 'Asia/Calcutta', //global date formats for display for your locale.
        ],

阅读本文 Link并引用 Doc .

希望它的作品。

关于yii2 - yii2 时区格式化程序中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139434/

相关文章:

yii - 如何使用 Yii2 Restful api 增强 Yii1 应用程序?

php - Yii2 REST 简化 BasicAuth

php - 找不到 Yii

php - 如何格式化与我的旧 Php Soap 服务相同的 Yii2 Soap 服务器响应

yii2 - 如何扩展 Yii2-user dektrium 配置文件模型以能够添加更多字段

php - 如何在 yii2 ActiveRecord 中使用查询缓存

将enableAjaxValidation设置为true后,Yii2文件验证错误不起作用

activerecord - 事件记录中的 Yii2 子查询 GROUP BY

Yii2 AssetManager 发布路径包括 URL 方案

javascript - 添加新列表选项,动态刷新更新列表