1

我在尝试安装 Kohana/SilverStripe 时收到以下错误/警告。
这是什么意思,我该怎么做?

Warning:
date_default_timezone_get():
It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected 'Asia/Calcutta' for '5.5/no DST' instead in C:\Server\apache\htdocs\kohana\system\core\Kohana.php on line 136

提前致谢!

4

3 回答 3

6

这不是错误,而是警告,因此它不会阻止您的应用程序运行。

在第 136 行的 C:\Server\apache\htdocs\kohana\system\core\Kohana.php 中使用 date_default_timezone_set() 显式设置正确的时区

您必须在有效时区中进行选择


编辑

正如警告消息本身所说,您实际上有一个比编辑第三方软件文件更干净的选择。即按应有的方式配置PHP。

  • 编辑php.ini并调整值date.timezone = America/New_York

或者

  • 在您的网络服务器配置中使用php_value指令将其设置在您的虚拟主机配置中,或者.htaccessphp_value date.timezone America/New_York
于 2009-09-18T12:26:52.177 回答
4

OP 对他自己的问题的上述评论暗示无法在 php.ini 中设置默认时区,这是不正确的——事实上,在许多情况下,将其设置为首选。而且由于这个 SO 答案是谷歌中“php 默认时区错误”的第一个命中之一,我将为其他人节省一些失去的理智。

这个错误的一个非常常见的原因不是在使用的 php.ini 文件中拼错了区域城市或国家(例如“New York”、“Los Angeles”),而是在其中包含嵌入的空格而不是下划线标识符,因此“拼错”了完整的常量。

这也将做你想做的事,而不必在运行时在每个页面上设置它(在 PHP 5.4 和 5.3,在 Windows、Linux 和 OSX 中验证):

php.ini中:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/New_York
;               ^^^^^^^^^^^^^^^^  * Must_Use_Underscores *


此外,如果您检查并重新检查了拼写并确定它是正确的,请确保您正在编辑正在使用的实际php.ini 文件:

Web 上下文(创建一个测试文件test.php,然后在date.timezone那里确认):

<?php phpinfo(); ?>

命令行 Linux/OSX:

$ php -i | grep“时区”

命令行窗口:

C:\> php -i | 找到“时区”


此处详细说明了检索默认日期时区配置的优先顺序。

于 2012-06-24T20:57:46.770 回答
1

如果您无法更改php.ini,请将其添加到您的_ss_environment.phpormysite/_config.php文件中:

date_default_timezone_set('...');

其中...是有效的 PHP 时区之一。

于 2016-03-08T20:23:42.810 回答