我按照config / web.php中的docs中的说明在Yii2应用程序中设置了时区:
'timeZone' => 'Europe/Berlin',
但是:这仅对Yii2有效,显然对PHP函数无效,例如date()
。
PHP时区设置保持不变,因此PHP和Yii2之间存在差异。
如何使Yii2时区成为领先的时区,从而根据Yii2配置中的时区设置来设置PHP时区?
编辑
时区是在应用程序组件\Yii::$app
中设置的,而不是在格式化程序组件中设置的。
我无法修改php.ini
文件。
答案 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' => '亚洲/塔什干',