Cake 1.2.6中的Strtotime错误

时间:2010-02-17 19:39:28

标签: cakephp cakephp-1.2

PHP Warning:  strtotime(): 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 ge
tting this warning, you most likely misspelled the timezone identifier. We selected 'America/Los_Angeles' for '-8.0/no D
ST' instead in C:\xampp\htdocs\cake_1_2\cake\libs\cache.php on line 429

当我尝试在新的cakephp 1.2.6应用程序中使用烘焙时,我才会得到这个。如果我在默认的应用程序文件夹(蛋糕构建附带的那个)中运行烘焙,它就会这样做。如果我从旧的1.2.5项目(cake_1_2 / myapp)中进行烘焙,它可以正常工作。

是否有其他人在CakePHP 1.2.6项目中遇到此问题?

这不是PHP问题,因为它会与我尝试的任何时间函数一致。

3 个答案:

答案 0 :(得分:3)

好吧, 是一个PHP问题。请参阅date_default_timezone_set的说明:

  

注意:从PHP 5.1.0开始(当日期/时间函数被重写时),如果时区无效,每次调用日期/时间函数都将生成E_NOTICE,和/或如果使用时区,则会生成E_WARNING消息系统设置或TZ环境变量。

  

5.3.0现在抛出E_WARNING而不是E_STRICT。

正如警告消息所述,Cake忽略了使用date_default_timezone_set来明确设置时区,这被认为是不可靠的,因此警告。这似乎只是CLI应用程序的情况。我不知道1.2.5和1.2.6之间是否存在回归,但1.3应该完全符合PHP 5.3的标准。

只需在/cake/console/cake.php脚本中设置时区,即可轻松摆脱此警告。

答案 1 :(得分:2)

不是修改核心文件,而是将时区添加到./app/config/core.php

date_default_timezone_set ("America/Los_Angeles");

答案 2 :(得分:0)

我在 ./ app / config / core.php 中取消注释了232行。我使用的是2.2.3版本。

这是一行:

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