Yii2:设置时区

时间:2019-02-08 09:03:06

标签: php yii2 timezone

我按照config / web.php中的docs中的说明在Yii2应用程序中设置了时区:

'timeZone' => 'Europe/Berlin',

但是:这仅对Yii2有效,显然对PHP函数无效,例如date()。 PHP时区设置保持不变,因此PHP和Yii2之间存在差异。

如何使Yii2时区成为领先的时区,从而根据Yii2配置中的时区设置来设置PHP时区?

编辑

时区是在应用程序组件\Yii::$app中设置的,而不是在格式化程序组件中设置的。

我无法修改php.ini文件。

3 个答案:

答案 0 :(得分:1)

您在Formatter组件中设置了时区。这意味着时区将仅用于通过Formatter输出日期。如果要设置全局时区,则应在Application config中进行设置。例如:

[
    'id' => 'basic',
    'timeZone' => 'Europe/Berlin',
    // other parameters of the application
]

答案 1 :(得分:0)

我找到了无需修改php.ini的解决方案:

./web/index.php./yii中,根据Yii2设置设置PHP时区:

$application = Yii::createObject('yii\web\Application', [$config->web()]);

// make PHP use the same timezone as Yii2
date_default_timezone_set($application->timeZone); 

$application->run();

答案 2 :(得分:-2)

common/config/main.php

'timeZone' => '亚洲/塔什干',