2013-07-29 2 views
0

Я использую PHP 5.3.6, и когда я пытаюсь запустить код ниже, я получаю следующую ошибку: « Неустранимая ошибка: вызов в формат функции участника() на не-объекте в ... ".Неустранимая ошибка при попытке форматирования вывода с использованием date_diff()

function diferenta_date($data_inceput, $data_sfarsit){ 
    $interval = date_diff(date_create($data_inceput), date_create($data_sfarsit)); 
    $output = $interval->format("Years:%Y,Months:%M,Days:%d,Hours:%H,Minutes:%i,Seconds:%s"); 

    $return_output = array(); 
    array_walk(explode(',', $output), function($val, $key) use(&$return_output) { 
       $v = explode(':', $val); 
       $return_output[$v[0]] = $v[1]; 
      }); 

    return $return_output; 
} 

Что случилось?

+3

Вам нужно узнать, как [READ and debug] (http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) сообщения об ошибках. Все, что вам нужно для решения проблемы, было в сообщении об ошибке. $ interval не является допустимым объектом – Anigel

+0

Похоже, date_diff не возвращает вам объект, но я не могу догадаться, почему, извините. – m4t1t0

+0

'date_diff()' вероятно, возвратил 'false', потому что он не удался, возможно, потому что один (или оба) вызова' date_create() 'не удалось. Каковы значения '$ data_inceput' и' $ data_sfarsit'? – Wiseguy

ответ

1

Необходимо проверить возвращаемые значения. The documentation says date_diff() возвращает:

The DateInterval object representing the difference between the two dates or FALSE on failure.

date_diff() терпит неудачу, и вы пытаетесь использовать ЛОЖЬ в качестве объекта.

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

  • Нет связанных вопросов^_^