Часовой пояс и другие проблемы с Cakephp 1.3 и PHP 5.3.2 - PullRequest
16 голосов
/ 30 июля 2010

на сервере у меня 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'), или Европа / Лондон, или что-то еще ...

очень расстраивает ......... помогите пожалуйста ...

ОБНОВЛЕНИЕ: что-то не так с моей установкой php ... если я запускаю

<?php echo date('Y'); ?>

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

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

Ответы [ 5 ]

26 голосов
/ 30 июля 2010

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

7 голосов
/ 22 октября 2010

Как сказал Лео, проблема с 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 на вашем сайте:

php_flag date.timezone = "Europe/Rome"
4 голосов
/ 01 октября 2010

У меня была точно такая же проблема, и Googling привел меня к этому сообщению.

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

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

2 голосов
/ 03 февраля 2011

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

0 голосов
/ 20 октября 2011

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

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

    //run controllers and actions that cause error here

}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...