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问题,因为它会与我尝试的任何时间函数一致。
答案 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');