Подтвердить что ты не робот

Часовой пояс и больше проблем с Cakephp 1.3 и PHP 5.3.2

на сервере у меня есть 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'); ?>

... это дает мне пустой экран. нет результата...

может быть проблема?

4b9b3361

Ответ 1

Для обработки первого предупреждения вам необходимо раскомментировать строку date_default_timezone_set('UTC'); в /app/config/core.php. Вы можете заменить UTC на свой часовой пояс, как предложил Лео.

Ответ 2

Как сказал Лео Саид, проблема с 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"

Ответ 3

У меня была такая же проблема, и Гуглинг привел меня на этот пост.

Я исправил проблему, добавив строку date_default_timezone_set("America/Anchorage"); в начало [каталог исходных кодов]/libs/cache.php

Вероятно, вы захотите заменить Америку/Анкоридж своим часовым поясом.

Ответ 4

У меня была эта ошибка некоторое время со времени проведения хостинга. обновлено до 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

Ответ 5

Я столкнулся с этим при использовании cakeshell для запуска сценариев cron командной строки. После долгих хлопот я понял, что в дополнение к решению bancer выше мне нужно было импортировать core.php в мои скрипты оболочки php как таковые:

function main() {
    App::import('Controller', 'Core');

    //run controllers and actions that cause error here

}

Добавление 'Core' to App:: import() решил это для меня.

Ответ 6

Аньядир в архиве bootstrap.php la siguiente linea de codigo

date_default_timezone_set ( 'Америка/Богота');

se coloca la zona horaria necesitada