php - PHP new DateTime() 抛出无效的 date.timezone 值
问题描述
这个脚本:
<?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
谢谢!
解决方案
我尝试了发布的解决方案,但它们对我不起作用。我写了一个 phpinfo() 页面来显示 php.ini 文件的位置。然后,我对其进行了编辑以设置新的 date.timezone,并重新启动服务器,更改没有影响。
这就是帮助我修复错误时区的原因:
- 我在 php 文件夹下发现错字错误的时区,使用:
grep -rl "Argentia" /etc/php
- 命令的输出:
/etc/php/7.4/mods-available/Custom.ini
- 所以,我编辑找到的文件并修改时区。
- 重启apache2服务,就可以了!
推荐阅读
- javascript - 为什么我的 Angular.js 小提琴不起作用?
- java - Oreo:LocalOnlyHotspot 已创建,但发生套接字异常
- jquery - jquery如何在这个之前添加新的div
- excel - 创建一个在excel中存储值的变量
- jquery - Bootstrap 向 slim jquery 添加功能
- java - 返回的 RealmResult 有空值
- raku - 将标量绑定到无符号变量 (Perl 6)
- android - 从视频ffmpeg中提取alpha
- android - asynctask setRequestMethod 发布不工作
- python - 编写图的 JSON 表示