Yii2 中的时区 [英] Timezone in Yii2

查看:38
本文介绍了Yii2 中的时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的电脑时区 'Asia/Tashkent'.我也在配置中将 Yii2 时区设置为 'Asia/Tashkent'.但是 Yii2 仍然错误地显示时间.我想知道我错过了什么?

$time = date("Y-m-d H:i:s", time());回声 $time;//2018-03-07 14:10:57echo Yii::$app->formatter->asTime($time, 'medium');//晚上 7:10:57echo Yii::$app->formatter->asDate($time, 'medium');//2018 年 3 月 7 日echo date_default_timezone_get();//亚洲/塔什干

解决方案

如果你给 asTime() 字符串日期格式化程序假定它在默认时区,在 Yii 2 中默认是 UTC.

如果您希望这与 PHP date() 的输出相同,请将 Yii 中的默认时区更改为您的时区.例如在配置中:

'components' =>['格式化程序' =>['类' =>'yii\i18n\格式化程序','defaultTimeZone' =>'亚洲/塔什干',],],

My computer time zone 'Asia/Tashkent'. And I set Yii2 time zone to 'Asia/Tashkent' too in config. But Yii2 is still displaying time incorrectly. I am wondering what I have missed?

$time = date("Y-m-d H:i:s", time()); 
echo $time;  // 2018-03-07 14:10:57
echo Yii::$app->formatter->asTime($time, 'medium'); // 7:10:57 PM
echo Yii::$app->formatter->asDate($time, 'medium'); // Mar 7, 2018
echo date_default_timezone_get(); // Asia/Tashkent

解决方案

If you are giving asTime() string date formatter assumes it's in default timezone which by default in Yii 2 is UTC.

If you want this to be the same as the output of PHP date() change the default timezone in Yii to yours. For example in the configuration:

'components' => [
    'formatter' => [
        'class'           => 'yii\i18n\Formatter',
        'defaultTimeZone' => 'Asia/Tashkent',
    ],
],

这篇关于Yii2 中的时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆