Ich habe einen Datensatz von MySQL zurückgegeben, der ein Datetime-Feld hat. Was ich tun möchte, ist diesen Wert zu nehmen und zu sehen, ob es älter als 24 Stunden ist. Ich nehme an, dass ich PHPs Zeit () verwende, um die aktuelle Zeit zu erhalten.
Im Moment, wenn ich sie ausspreche, bekomme ich:
%Vor%Ich nehme an, der oberste ist eine Unix-Zeit? Habe mit strtotime gespielt, aber mit wenig Erfolg.
Eine Hilfe willkommen!
Kein Erfolg?
%Vor%gibt mir
%Vor% ( mktime(9, 39, 23, 6, 19, 2010)
gibt die gleiche Zeit, damit das Parsing korrekt funktioniert)
Um die Unterschiede in Sekunden zu erhalten, können Sie die Zeitstempel abziehen, z. B.
%Vor%Wenn die Unterschiede größer als 86400 (60 * 60 * 24) Sekunden sind, dann sind die Zeitstempel mehr als einen Tag auseinander:
%Vor%Warum mischst du PHP mal und MySQL mal?
Stattdessen führen Sie den Vergleich direkt in MySQL durch:
Um das aktuelle Datum / Uhrzeit in MySQL zu erhalten, benutzen Sie die Funktion NOW()
. Sie können beispielsweise 2010-06-19 09:39:23' < DATE_SUB(NOW(), INTERVAL 1 DAY)
Dies würde prüfen, ob das angegebene Datum (vermutlich in einer Spalte) älter als 24 Stunden ist.
Wenn es absolut notwendig ist, einen MySQL-Timestamp in einen UNIX-Timestamp zu konvertieren, können Sie dazu die% code% -Funktion von MySQL verwenden.
Ich habe eine Funktion geschrieben, mit der Sie bestimmen können, ob das erste angegebene Datum ein Tag oder n Tage größer oder kleiner als das zweite angegebene Datum ist.
%Vor%