Yii2 中的时区 [英] Timezone in Yii2
本文介绍了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屋!
查看全文