2017-11-14 5 views
-1

Ich versuche, den Date-Pass von der vorherigen Seite mit dem in der Datenbank gespeicherten Datum (Unix-Timestamp-Format) zu vergleichen. Mein Code wie unten. Fehler: Behebbarer fataler Fehler: Das Objekt der Klasse DateTime konnte in Zeile C: \ xampp \ htdocs \ check.php in ZeileVergleichen DateTime-Unix-Zeitstempel

nicht umgewandelt werden. Wie sollte ich es ändern, um mit dem "datetime2" vergleichen zu können? und speichert als 10-stellige unixtime.

Grundsätzlich möchte ich es nicht zum normalen Datum konvertieren. einfach speichern, wie es ist, 10-stellig unixtimestamp.

Bitte helfen Sie auch in die foreach-Schleife zu schauen. Ich möchte überprüfen, ob das ausgewählte Datum in der Datenbank erschienen ist.

Danke

<?PHP 
 
\t session_start(); 
 
\t 
 
\t $userid = $_SESSION['userid']; 
 
\t $datetime = $_POST['datetime']; 
 
\t $available = 0; 
 
\t \t 
 
\t $date = $datetime; $datetime2 = new DateTime($date); echo $datetime2->getTimestamp(); 
 

 

 

 
\t $con = mysqli_connect('localhost', 'root', 'abc123'); 
 

 
\t $query = "SELECT COUNT * FROM reservation WHERE InstallDate='" . $datetime2 . "'"; 
 

 
    \t if (!$con) 
 
     \t { 
 
     \t \t die('Could not connect: ' . mysqli_error($con)); 
 
     \t } 
 

 

 
    \t mysqli_select_db($con, 'btr'); 
 

 

 
    \t foreach(mysqli_query($con, $query)as $row) 
 
\t { 
 
\t \t if($row <=1) 
 
\t \t { 
 
\t \t \t $available = 1; 
 
\t \t \t echo $available; 
 
\t \t } \t 
 
\t \t 
 
\t } 
 

 

 
    \t mysqli_close($con); 
 

 
?>

+0

Warum verwenden Sie 'getTimestamp()', um Wert zu sparen? – guyaloni

+0

Ich verstehe es nicht. – zach89

+0

Sie möchten es nicht in ein Datum umwandeln, Sie möchten nur die 10-stellige Zeichenfolge verwenden. Sie beginnen jedoch mit einer 10-stelligen Zeichenfolge, erstellen ein DateTime-Objekt und übergeben dieses DateTime-Objekt dann an Ihre SQL-Abfrage. – miknik

Antwort

0

Statt Objekt der Klasse Datetime verwenden, versuchen Sie es in einer chenden Weise Zeichenfolge wie folgt konvertieren:

$query = 
"SELECT COUNT * FROM reservation WHERE InstallDate='" 
.$datetime2->format('d/m/Y') 
."'"; 

einstellen Auch d/m/Y Separatoren Für Ihre Datenbank verwendet zB MySQL d.m.Y Separation.

+0

Was, wenn direkt mit der 10-stelligen Zeit vergleichen? möglich, auf diese Weise zu speichern und zu vergleichen? – zach89