2017-10-25 1 views
0

Ich habe Reisezeiten in einer Datenbank gespeichert. Ich möchte den Benutzern nur die verfügbaren Reisen anzeigen (diejenigen, die noch nicht gegangen sind) nach der aktuellen Uhrzeit.PHP, aktuelle Uhrzeit in einer Datenbankspalte vergleichen und dann anzeigen

Dies ist mein PHP-Code, aber es gibt "falsch" als Ergebnis zurück. Was mache ich bitte falsch?

require "conn.php"; 

$sql = "SELECT * FROM Horaires"; 
$result = mysqli_query($conn, $sql); 
$temp = array(); 
$now = strtotime(date("h:i")); 

while ($row = mysqli_fetch_array($result)) 
{ 
$temp[]=array($row['timing']); 
$time = strtotime($temp); 
} 

if ($now >= $time) 
{ echo json_encode($time, JSON_NUMERIC_CHECK); } 
else { echo "There is no more travels today"; } 

$conn->close(); 
+0

sind beide im selben Format? was ist das ? Bitte überprüfen Sie dies einmal https://StackOverflow.com/questions/33446581/whats-the-right-way-to-compare-two-dates-in-php – Krish

+0

Fügen Sie zu Ihrer Frage var_dump ($ temp); und var_dump ($ zeit); Außerdem holen Sie viele Zeilen von Horaires, aber Ihr Vergleich ist außerhalb der while, also vergleichen Sie nur das letzte Ergebnis? – Nic3500

+0

Entschuldigung @Krisch, ich bin ein Anfänger. Ich habe die Post überprüft, es geht um den Vergleich von Daten. Ich möchte mal vergleichen. Ich habe es mit der Zeit() anstatt mit dem Datum() versucht, aber ich bekomme immer noch das gleiche Ergebnis. – Mary

Antwort

0

Wenn es in einem Datums- und Uhrzeitformat (Sie, dass durch die Verwendung DateTime::createFromFormat("format","time") erstellen) können Sie die funciton verwenden -> diff die diffrence zwischen ihnen zu bekommen. Beispiel:

$time1 = DateTime::createFromFormat("G:i:s",date('G:i:s')); 
sleep(5); 
$time2 = DateTime::createFromFormat("G:i:s",date('G:i:s')); 
echo $time2->diff($time1); 

das ist, wie ich das lösen würde. Am besten wäre es, sie in ein DateTime-Format zu bringen.