Berechnung der Anzahl der Tage mit strtotime gibt falsche Ergebnis
Habe ich zwei Termine in einer mysql Datenbank abgelegt (Type = date). Zum Beispiel -
Datum 1 = 2010-09-20
Datum 2 = 2010-10-20
Ich soll berechnen Sie die Anzahl der Tage zwischen diesen beiden Daten. Also, die versucht haben, dieses -
$number_days = (strtotime($date2) - strtotime($date1) / (60 * 60 * 24));
Aber das gibt 49
Wie so?
------------------------------------- UPDATE ------------------------------------------
Ok ich erkannte mein problem, was einige Verwirrung. Ich war mit einer anderen Funktion zum abrufen von Datum 1 und aus verschiedenen Gründen wurde das Datum nicht korrekt zurückgegeben, so dass die Anzahl von Tagen gegeben war tatsächlich korrekt. Wenn ich abgerufen, das richtige Datum aus der Datenbank meine Berechnung oben gearbeitet, unter account die Priorität /über -
Dank für Eure Antworten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
/
hat eine höhereVorrang
als-
So
(a - b /c)
werden so behandelt, als( a - (b/c) )
aber das, was Sie brauchen, ist( (a - b) /c )
So versuchen:
Können Sie dies mit MySql-Abfrage
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_to-days
DATEDIFF()
?Wenn Sie Holen beide Daten aus einer MySQL-Datenbank, ich habe immer gefunden, es leichter zu conver Sie UnixDateTime integer-format während der SQL-Abfrage. Sie sind viel leichter zu behandeln in diesem format.
Deine Abfrage würde wie folgt Aussehen:
Ich fand es schon immer viel besser zu tun, als um die Daten, die als strings und dann haben zu Chaos mit PHP klobig Datum-handling-Funktionen.
Sagte, die date-Klasse ist viel besser, in PHP5.3-es hat sogar Datum addieren/subtrahieren Funktionen, das würde auch dein problem lösen viel besser als die strtotime()... vorausgesetzt, Sie sind mit PHP 5.3.
Hoffe, das hilft. Ich weiß, dass das nicht direkt die Frage beantworten, aber!