Überprüfung, ob mySql datetime älter ist als 1 Tag von php now ()

7

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!

    
bateman_ap 19.06.2010, 13:45
quelle

4 Antworten

26

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%     
Felix Kling 19.06.2010, 13:53
quelle
9

Sie können auch Folgendes tun:

%Vor%     
Lèse majesté 19.06.2010 14:17
quelle
3

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)

vergleichen

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.

    
VoteyDisciple 19.06.2010 13:49
quelle
0

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%     
MapleLover 03.07.2013 14:27
quelle

Tags und Links