2013-07-29 69 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和調試](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php)錯誤消息。解決問題所需的一切都在錯誤信息中。 $間隔不是一個有效的對象 – 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()失敗,並且您嘗試使用FALSE作爲對象。

相關問題