cakephp date.timezone落后几个小时

时间:2012-10-05 01:25:37

标签: php cakephp

我安装了cakephp 1.3,它使用以下内容:
Apache版本:2.2.21
PHP版本:5.3.8
MySQL版本:5.5.16。
问题是当我回应以下

echo date('l jS \of F Y h:i:s A');
我得到的时间比当地时间晚几个小时(机器时间设定为我的国家时间,澳大利亚) 当我在php.ini文件中进行更改并设置date.timezone = UTC + 10时,我得到了正确的本地时间,但我也收到了很多警告。

警告:strtotime()[function.strtotime]:依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们在第515行的C:\ wamp \ www \ cakephp \ lib \ Cake \ Cache \ Cache.php中选择“澳大利亚/墨尔本”为'10 .0 /无DST'

请帮助谢谢

2 个答案:

答案 0 :(得分:2)

您不能将时区指定为UTC的偏移量,如您在帖子中提到的“UTC + 10”。您必须使用其中一个有效的时区字符串。选择您的大陆here,您将获得有效时区字符串列表。

所以对于例如。在core.php中你必须这样做:

date_default_timezone_set("Australia/Melbourne");

将时区字符串更改为您喜欢的任何其他有效时区字符串。顺便说一句,CakeTime :: listTimezones()也会给你时区列表。

编辑:您可以将时区指定为UTC的偏移量,但不应该。

答案 1 :(得分:1)

  

如果您从PHP获取与时区相关的错误,请取消注释一行   在app / Config / core.php中:

<?php
/**
 * Uncomment this line and correct your server timezone to fix
 * any date & time related errors.
 */
    date_default_timezone_set('UTC');

http://book.cakephp.org/2.0/en/installation.html#fire-it-up