Ответ 1
Для обработки первого предупреждения вам необходимо раскомментировать строку date_default_timezone_set('UTC');
в /app/config/core.php. Вы можете заменить UTC
на свой часовой пояс, как предложил Лео.
на сервере у меня есть php 5.3.2 и cakephp 1.3.
когда я запускаю приложение cakephp, он дает мне следующие ошибки:
Предупреждение (2): strtotime() [http://php.net/function.strtotime]: Нельзя полагаться на настройки системного часового пояса. Вы должны использовать параметр date.timezone или функцию date_default_timezone_set(). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали "Европа/Берлин" для "CEST/2.0/DST" вместо [ROOT/cakephp/cake/libs/cache.php, строка 570]
Кроме того, я получаю еще несколько ошибок:
Примечание. Попытка получить свойство не-объекта в /htdocs/cakephp/cake/libs/cache/file.php в строке 248 Неустранимая ошибка: вызов функции-члена cd() для не-объекта в /htdocs/cakephp/cake/libs/cache/file.php в строке 248
Часовой пояс в php.ini определяется как Европа/Лондон
Я всегда получаю эту ошибку, несмотря на то, что я определяю или не date_default_timezone_set('UTC')
, или Европа/Лондон, или что-то еще...
действительно расстраивает......... пожалуйста, помогите...
UPDATE: что-то не так с моей установкой php... если я запустил
<?php echo date('Y'); ?>
... это дает мне пустой экран. нет результата...
может быть проблема?
Для обработки первого предупреждения вам необходимо раскомментировать строку date_default_timezone_set('UTC');
в /app/config/core.php. Вы можете заменить UTC
на свой часовой пояс, как предложил Лео.
Как сказал Лео Саид, проблема с PHP 5.3. Лучшим решением является изменение вашего веб-сервера php.ini и установка
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Rome"
Или, если вы не можете изменить веб-сервер php.ini, вы можете добавить эти параметры в файл .htaccess root на своем сайте:
php_flag date.timezone = "Europe/Rome"
У меня была такая же проблема, и Гуглинг привел меня на этот пост.
Я исправил проблему, добавив строку date_default_timezone_set("America/Anchorage");
в начало [каталог исходных кодов]/libs/cache.php
Вероятно, вы захотите заменить Америку/Анкоридж своим часовым поясом.
У меня была эта ошибка некоторое время со времени проведения хостинга. обновлено до 5.3 тоже
В строке /app/config/config.php, вокруг строки 244, есть заметка о том, как не комментировать следующую строку при запуске на 5.3
Я просто изменил следующую строку на:
date_default_timezone_set('America/Toronto'); // your favourite time-zone here - and don't get me started about why Toronto is U.S. city (joking)
Вы можете поместить эту строку в bootstrap.php, но вы можете получить эту ошибку, сначала загрузите config.php
Я столкнулся с этим при использовании cakeshell для запуска сценариев cron командной строки. После долгих хлопот я понял, что в дополнение к решению bancer выше мне нужно было импортировать core.php в мои скрипты оболочки php как таковые:
function main() {
App::import('Controller', 'Core');
//run controllers and actions that cause error here
}
Добавление 'Core' to App:: import() решил это для меня.
Аньядир в архиве bootstrap.php la siguiente linea de codigo
date_default_timezone_set ( 'Америка/Богота');
se coloca la zona horaria necesitada