2016-09-12 6 views
0

Ich versuche, Anzahl der Tage zwischen heute und dem Datum zu geben, die ich eingeben, so habe ich ein Problem, ich Fehler: "Warnung: date_diff() erwartet Parameter 2 DateTimeInterface" Also, was ist das Problem ?PHP Datum_Sub. kann heute und Datum nicht subtrahieren

<?php 
 

 
$today=date("y-m-d"); 
 
$date=date_create("2016-09-16"); 
 

 
echo date_diff($date,$today); 
 

 
?>

+3

rtfm: http://php.net/date es gibt einen ** STRING **, kein Datetime-Objekt. –

+0

@MarcB bedeutet das, dass ich $ heute in strtotime() -Funktion einfügen muss? – nika

+1

rtfm: http://php.net/strtotime gibt ein INTEGER, kein Datetime-Objekt zurück. Sie sollten wirklich nur die Dokumentation lesen. –

Antwort

2

Ihr Problem liegt darin, dass, wenn date_diff verwenden Sie müssen sicherstellen, dass Sie Objekte sind zu vergleichen, die Objekte tatsächlich aktuell sind. Außerdem ist der Rückgabetyp für date_diff ein DateInterval-Objekt. Du behandelst es als eine Schnur.

$today = new DateTime(); // $today is a DateTime object 
$date = new DateTime("2016-09-16"); // $date is also a DateTime object! 
$diff = date_diff($date,$today); // compare two objects of the same type FTW! 

echo $diff->days; // $diff is a DateInterval object, so echo it's 'days' property. 

// output: 3 (as of this writing) 

Weiterführende Literatur:
http://php.net/manual/en/class.dateinterval.php
http://php.net/manual/en/class.datetime.php
http://php.net/manual/en/function.date-diff.php

+0

Vielen Dank. Das stimmt, was ich will. – nika