时区以及 Cakephp 1.3 和 PHP 5.3.2 的更多问题

2022-08-30 22:58:58

在服务器上,我有php 5.3.2和cakphp 1.3。

当我运行cakphp应用程序时,它给我以下错误:

警告 (2):strtotime() [http://php.net/function.strtotime]:依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,则很可能拼写错误的时区标识符。我们为“CEST/2.0/DST”选择了“欧洲/柏林”,而不是 [ROOT/cakephp/cake/libs/cache.php,第 570 行]

另外,我得到了更多的错误:

注意:尝试获取 /htdocs/cakephp/cake/libs/cache/file 中非对象的属性.php第 248 行致命错误:在第 248 行的 /htdocs/cakephp/cake/libs/cache/file.php非对象上调用成员函数 cd()

时区在 php.ini 被定义为 欧洲/伦敦

我总是得到这个错误,尽管我定义或没有date_default_timezone_set('UTC'),或者欧洲/伦敦,或者其他什么......

真的很令人沮丧...请帮忙...

更新:我的php安装有问题...如果我运行

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

...它给了我空白的屏幕。没有结果...

可能有问题吗?


答案 1

要处理第一个警告,您需要取消注释 /app/config/core.php 中的行。您可以按照Leo的建议替换您的时区。date_default_timezone_set('UTC');UTC


答案 2

正如Leo所说,这是PHP 5.3的一个问题。最好的解决方案是修改你的Web服务器php.ini并设置

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Rome"

或者,如果您无法修改Web服务器php.ini则可以将此选项添加到您网站上的root .htaccess文件中:

php_flag date.timezone = "Europe/Rome"

推荐