我在 Yii2 应用程序中设置了时区,如 config/web.php 中的文档中所述:
'timeZone' => 'Europe/Berlin',
但是:这只对 Yii2 有效,显然对 PHP 函数无效,例如 date()
.PHP 时区设置保持不变,因此 PHP 和 Yii2 之间存在差异。
时区成为根据 Yii2 配置中的时区设置设置 PHP 时区的前导时区?
编辑
时区是在应用程序组件Yii::$app
中设置的,而不是在格式化程序组件中设置的。
我无法修改php.ini
文件。
我找到了无需修改php.ini
的解决方案:
在 ./web/index.php
和 ./yii
中,根据 Yii2 设置设置 PHP 时区:
$application = Yii::createObject('yiiwebApplication', [$config->web()]);
// make PHP use the same timezone as Yii2
date_default_timezone_set($application->timeZone);
$application->run();
请不要忘记以类似的方式修改控制台命令yii
/yii.bat
。
在格式化程序组件中设置时区。这意味着时区将仅用于使用格式化程序输出日期。如果要设置全局时区,则应在应用程序配置中进行设置。例如:
[
'id' => 'basic',
'timeZone' => 'Europe/Berlin',
// other parameters of the application
]
common/config/main.php
'时区' => '亚洲/塔什干',