【问题标题】:Timezone in Yii2Yii2 中的时区
【发布时间】:2018-03-07 09:19:11
【问题描述】:

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

$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

【问题讨论】:

  • 在回显时间前加上Yii::$app->formatter->timeZone = 'Asia/Tashkent';会怎样?
  • 你的意思是 date_default_timezone_get(); 正在返回正确的时区,但你得到的时间不正确
  • Muhammad Omer Aslam 你说对了。时区是正确的,但显示的时间不同。 5小时时差
  • 不不,如果你在回显时间之前我的代码会显示Yii::$app->formatter->asTime($time, 'medium')
  • #Yupic 没有任何改变。

标签: php yii2


【解决方案1】:

如果您提供asTime() 字符串日期格式化程序假定它在默认时区,在 Yii 2 中默认为 UTC。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    相关资源
    最近更新 更多