2016-06-08 74 views
0

我遇到問題了,我是初學者 我有一個生日日期(格式爲Y-m-d) 而且我有實際的日期。DateTime可捕捉的致命錯誤

$date = $_POST["DatumJJJJ"]."-".$_POST["DatumMM"]."-".$_POST["DatumTT"]; 
$birthday = new DateTime($date); 
$now = new DateTime(date("Y-m-d")); 
$difference = $birthday->diff($now); 
echo $difference; 

現在,那裏有在最後一行的錯誤:

Catchable fatal error: Object of class DateInterval could not be converted to string 

我該怎麼辦?我看到了其他類似的問題,但他們不幫助我!

+0

查看dateInterval的結構obect http://php.net/manual/en/class.dateinterval.php – splash58

+0

這是因爲'$ difference'是嘗試的對象'$ difference-> format('%R%a天');'更詳細的看看http://php.net/manual/en/datetime.diff.php –

回答

0

這是因爲$difference不是字符串。您不能像打印字符串那樣直接打印它。如果您想查看$difference中包含的數據。使用print_r()。與此類似,上述功能的

print_r($difference); 

輸出會是這樣的,

DateInterval Object 
(
    [y] => 0 
    [m] => 7 
    [d] => 29 
    [h] => 0 
    [i] => 0 
    [s] => 0 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 0 
    [days] => 242 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
) 

爲對象中的每個鍵的詳細信息,請參閱http://php.net/manual/en/class.dateinterval.php

+0

謝謝,但現在我有其他問題 – Korne127

+0

我已經試過'$差異 - >格式( Y);''''差異 - >格式(YMD);' 但它沒有用。我只想要幾年,幾個月和幾天 – Korne127

+0

你可以像這樣得到它:'$ difference-> y','$ difference-> m'和'$ difference-> d'。 –