0

我已经安装了 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/no DST' 选择了 'Australia/Melbourne'

请帮忙谢谢

4

2 回答 2

2

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

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

date_default_timezone_set("Australia/Melbourne");

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

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

于 2012-10-05T06:42:31.133 回答
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

于 2012-10-05T02:32:26.090 回答