2014-02-13 4 views
2

Он отлично работает на localhost, но когда я загрузить его на мой хост онлайн он показывает эту ошибку:DateTime: Синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR

syntax error, unexpected T_OBJECT_OPERATOR 

Как я могу это исправить? Должен ли я определять функцию DateTime?

if ((new DateTime($date))->diff(new DateTime())->days > 10) { 
    echo 'test'; 
} 

ОБНОВЛЕНИЕ:

$date = DateTime::createFromFormat('y-M-d l H:i a', $date); 
if ($date->diff(new DateTime())->days > 10) { 

ответ

8

доступ к члену класса на конкретизации была добавлена ​​в PHP 5.4. Вероятно, вы используете PHP 5.3, поэтому вы не можете использовать этот синтаксис.

Изменение:

if ((new DateTime($date))->diff(new DateTime())->days > 10) { 

к:

$date = new DateTime($date); 
if ($date->diff(new DateTime())->days > 10) { 
+0

, казалось, исправить несколько, по крайней мере, страница работает снова, но теперь я получаю это в содержании: "Uncaught исключение 'Exception' с сообщением 'DateTime :: __ construct() [datetime.--construct]: Не удалось проанализировать строку времени (14-фев-11 вторник, вторник 13:14) в позиции 24 (p): часовой пояс не найден в базе данных' in ' –

+0

То есть не допустимый формат для перехода к DateTime. Вам нужно будет использовать 'DateTime :: createFromFormat()' для разбора этого формата и создания допустимого объекта datetime. –

+0

Я использую TIMESTAMP как тип для поля 'date', если это имеет значение –

Смежные вопросы