【发布时间】:2021-01-21 21:42:28
【问题描述】:
这个脚本:
<?php
$dateTime = new DateTime();
?>
抛出此错误:
PHP Fatal error: Uncaught Exception: DateTime::__construct(): Invalid date.timezone value 'America/Argentia/Buenos_Aires', we selected the timezone 'UTC' for now. in /var/www/html/date.php:2
Stack trace:
#0 /var/www/html/date.php(2): DateTime->__construct()
#1 {main}
thrown in /var/www/html/date.php on line 2
注意时区“Argentia”,看起来像是错字,但我不知道它是在哪里配置的。
我已经尝试过的:
- 我在 php.in:
date.timezone = "America/Argentina/Buenos_Aires"中编辑了时区并重启了 apache2 服务。 - 我检查了服务器时区(没关系):
# timedatectl | grep "Time zone"
Time zone: America/Argentina/Buenos_Aires (-03, -0300)
注意:
在脚本开头添加以下行
date_default_timezone_set("America/Argentina/Buenos_Aires");
问题“已解决”,但我正在寻找该问题的通用解决方案。
系统信息: Ubuntu 16.04 和 PHP 7.4
谢谢!
【问题讨论】:
-
默认时区由 PHP.INI 中的
data.timezone条目配置。你说你已经编辑了,所以这是你的一般解决方案。如果这不能解决问题,您确定您编辑了正确的 PHP.INI 副本吗? -
phpinfo() 显示: 加载的配置文件 /etc/php/7.4/apache2/php.ini date.timezone America/Argentia/Buenos_Aires America/Argentia/Buenos_Aires 当编辑这个文件时,我有: date.timezone = "America/Argentina/Buenos_Aires" 我正在重新启动 Apache 使用: sudo service apache2 restart 我不知道出了什么问题!