2016-06-08 8 views
0

Ich habe ein Problem, ich bin ein Anfänger Ich habe ein Geburtstagsdatum (im Format Y-m-d) Und ich habe das tatsächliche Datum.DateTime Abfangbar fataler Fehler

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

Nun, Theres einen Fehler in der letzten Zeile:

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

Was soll ich tun? Ich sah andere ähnliche Fragen, aber sie helfen mir nicht!

+0

suchen Sie die Struktur von dateInterval obect http://php.net/manual/en/class.dateinterval.php – splash58

+0

dies ist, weil '$ Unterschied 'ist Objekt des Versuchs' $ Differenz-> Format ('% R% a Tage '); 'für mehr Details schauen Sie auf http://php.net/manual/en/datetime.diff.php –

Antwort

0

Es ist, weil $difference keine Zeichenfolge ist. Sie können es nicht direkt drucken, wie Sie eine Zeichenfolge drucken. Wenn Sie die Daten von $difference sehen möchten. Verwenden Sie print_r(). Wie diese

print_r($difference); 

Ausgabe der oben genannten Funktion wäre so etwas wie diese,

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 Ausführliche Informationen finden Sie jede Taste innerhalb des Objekts.

+0

Vielen Dank, aber jetzt habe ich ein anderes Problem – Korne127

+0

Ich habe' $ Unterschied-> Format versucht (Y); 'und' $ difference-> format (YMD); ' aber es funktioniert nicht. Ich will nur Jahre, Monate und Tage – Korne127

+0

Sie können es so erhalten: '$ Unterschied-> y ',' $ Unterschied-> m' und '$ Unterschied-> d'. –