/ / Wie bekomme ich Tage von 2 Daten? php - php, html, date, compare, dreamweaver

Wie bekomme ich Tage von 2 Tagen PHP - PHP, HTML, Datum, Vergleich, Dreamweaver

hi ich versuche die tage zwischen 2 terminen zu bekommen. Das ist meine Codierung:

<?php
$Cur_date = date("Y-m-d");
$Warranty = intval($row_Recordset1["Hardware_warranty"]);
$timestamp = strtotime($row_Recordset1["Pur_date"]);
$newtimestamp = strtotime("+".$Warranty." years", $timestamp);
$newtimestamp = date("Y/m/d", $newtimestamp) ;



if($Cur_date< $newtimestamp)
{
$interval = $Cur_date->diff($newtimestamp);
echo "Valid"."nnn".$interval->y . " years, " . $interval->m." months, ".$interval->d." days "." left";
}
else if ($Cur_date > $newtimestamp)
{
echo "Expired" ;
}
?>

aber ein Fehler kam heraus:

Schwerwiegender Fehler: Rufen Sie eine Mitgliedsfunktion diff () für den String in C: xampphtdocsWarrantyWarrantyStatus.php in Zeile 155 auf

Bitte helfen Sie mir, danke

kein Duplikat von Wie berechnet man die Differenz zwischen zwei Terminen mit PHP?

Ich habe hier ein anderes Problem. Muss ich vorher etwas deklarieren?

Antworten:

2 für die Antwort № 1

Die Variable $ Cur_date ist keine Instanz der DateTime-Klasse, sondern nur eine Standardzeichenfolge. Sie enthält also keine diff () -Methode.

Ändern Sie die Deklaration in:

$Cur_date = new DateTime("Y-m-d");

Auch um die diff () -Methode weiter zu verwenden$ newtimestamp, Sie müssen $ newtimestamp auch in ein DateTime-Objekt konvertieren. Um ein anderes Datum und eine andere Uhrzeit als "now" zu verwenden, sollten Sie die statische Methode DateTime :: createFromFormat () verwenden.

In Ihrem Fall würde es ungefähr so ​​aussehen:

$Warranty = intval($row_Recordset1["Hardware_warranty"]);
$timestamp = strtotime($row_Recordset1["Pur_date"]);
$newtimestamp = strtotime("+".$Warranty." years", $timestamp);
$newtimestamp = DateTime::createFromFormat("Y/m/d", $newtimestamp);

Zu diesem Zeitpunkt sollten Sie in der Lage sein, diezwei DateTime-Objekte, und verwenden Sie die diff () -Methode wie beabsichtigt. Da Sie die diff () -Methode verwenden, können Sie auch die "days" -Eigenschaft des resultierenden $ -Intervalls anstelle von "d" verwenden. Es liegt an dir.

Siehe auch:
http://php.net/manual/en/datetime.diff.php
http://php.net/manual/en/datetime.createfromformat.php