2010-02-17 3 views
0
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), он отлично работает.Ошибка Strtotime в торте 1.2.6

Есть ли у кого-нибудь еще эта проблема с проектами CakePHP 1.2.6?

Это не проблема PHP, потому что тогда это будет соответствовать любым функциям времени, которые я пробовал.

ответ

3

Ну, это is проблема PHP. Смотрите описание date_default_timezone_set:

Примечание: Начиная с PHP 5.1.0 (когда функции даты/времени были переписаны), каждый вызов функции даты/времени будет генерировать E_NOTICE, если временная зона не является действительным, и/или E_WARNING, если вы используете системные настройки или переменную окружения TZ.

и

5.3.0 Теперь бросками E_WARNING, а затем E_STRICT.

Как сказано в сообщении предупреждения, торт пренебрегает использовать date_default_timezone_set явно установить часовой пояс, который считается ненадежным, поэтому предупреждение. Это похоже только на приложение CLI. Я не знаю, существует ли регрессия между 1.2.5 и 1.2.6, но 1.3 обязательно должна соответствовать стандартам PHP 5.3.

Вы можете легко избавиться от этого предупреждения, просто установив часовой пояс в сценарии /cake/console/cake.php.

+0

Это имеет смысл для меня, и я полагаю, что «должны» быть правдой, но почему бы одна машина с 1.2.6 бросить эту ошибку и другой машины с той же версией не? Почему родовое приложение выбрасывает ошибку, но мое пользовательское приложение не работает? Машина, бросающая ошибку, представляет собой ноутбук. Это единственное различие, которое я вижу. Они имеют одну и ту же установку xampp PHP. Те же версии всего. – Selino

2

Вместо модификации файлов ядра, добавьте свой часовой пояс в ./app/config/core.php

date_default_timezone_set ("America/Los_Angeles"); 
0

Я раскомментировали 232 строку в ./app/config/core.php. Я использую версию 2.2.3.

Это линия:

/** 
* Uncomment this line and correct your server timezone to fix 
* any date & time related errors. 
*/ 
date_default_timezone_set('UTC'); 
Смежные вопросы