如何处理 PHP 5.3.2 时区错误?

如何处理 PHP 5.3.2 时区错误?

在服务器上我有 php 5.3.2。

如果我想运行简单的 php 脚本,像这样:

<?php echo date('Y'); ?>

...它给出了以下错误:

警告:date():依赖系统的时区设置并不安全。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了上述任何一种方法,但仍然收到此警告,则您很可能拼错了时区标识符。我们在 /htdocs/index.php 第 9 行选择了“Europe/Berlin”而不是“CEST/2.0/DST”致命错误:date():时区数据库已损坏 - 这绝不应该发生!在 /htdocs/index.php 第 9 行

php.ini 中的时区定义为欧洲/伦敦

我总是会收到该错误,无论我是否定义 date_default_timezone_set('UTC'),或 Europe/London,或其他什么......

我尝试编辑 /etc/init.d/httpd 文件,但我没有权限(由于 selinux?)

请帮忙...

答案1

这不是 PHP 错误 - 它只是告诉您某些地方出了问题,需要您纠正它。

我注意到了时区数据库已损坏——这绝不应该发生!- 在您的 shell 中尝试以下命令并重新启动 Apache apt-get install tzdata:。

如果之后它仍然有问题(或者您已经拥有该包),请创建一个包含以下内容的新 PHP 文件并在浏览器中加载它:<?php phpinfo(); ?>

寻找加载配置文件并检查您正在编辑的 php.ini 文件。

打开该 php.ini 文件并查找以 开头的行date.timezone。确保您选择的时区括在引号中 - 我使用的时区如下:date.timezone = "Europe/London"

修改并保存 php.ini 后,必须重新加载 Apache 以使更改生效。

相关内容