Ich rufe einige Daten aus einer einfachen SELECT-Abfrage, wo die Zeile drei Felder enthält, , end_time(DATETIME)
& reopen_time(DATETIME)
.Berechnung der Zeit zwischen DATETIME mit PHP
Ich versuche, die Zeit zwischen trainieren sowohl den start_time
und end_time
& auch zwischen den start_time
& reopen_time
, ob dies ein Fall ist. Die Art, wie ich gehe, ist complete
durch eine andere Spalte bestimmen genannt, die entweder den Wert 1 setzt oder 0. Es wird die start_time
und end_time
wenn der gesamte Wert 1 und start_time
und reopen_time
wird Wert ist 0.
berechnen Jetzt sieht mein PHP wie folgt aus: Ich suche jemand von Gehäuse und Auge zu helfen:
$id=$_GET['id']; //this grabs the id from the previous page depending on which task is clicked.
$sql = "SELECT * FROM to_do_list WHERE id=$id";
$result = mysqli_query($db, $sql);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
$date1 = $row["start_time"];
$date2 = $row["end_time"];
$diff = abs(strtotime($date2) - strtotime($date1));
$years = floor($diff/(365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
printf("%d years, %d months, %d days\n", $years, $months, $days);
}
} else {
echo "There are no tasks!";
}
Nun wird das Ergebnis, das ich zurück ist erhalten: 0 Jahre, 0 Monate, 0 Tage, aber es ist kein Fehler. Ich nehme an, das Format der Daten aus der Datenbank ist vielleicht falsch?
Haben Sie den Inhalt des überprüfen '$ date1',' $ date2' usw. Variablen in einem Debugger? – RhinoDevel
beide Inhalte geben mir das erwartete Ergebnis, aber von '2016-04-02 19: 48' &' 2016-04-02 19: 55: 20', die die Inhalte der Felder in der Datenbank sind. – PhpDude
Sie wissen, dass Sie das Diff direkt in der MySQL-Abfrage mit 'DATEDIFF' können? –