Ich bekomme eine Liste von Elementen aus meiner Datenbank, jeder hat eine CURRENT_TIMESTAMP, die ich in 'x Minuten vor' mit Hilfe von timeago geändert habe. Das funktioniert also gut. Aber das Problem ist, ich möchte auch ein "NEUES" Banner auf Artikel, die weniger als 30 Minuten alt sind. Wie kann ich den generierten Zeitstempel (zum Beispiel: 2012-07-18 21:11:12) und sagen, wenn es weniger als 30 Minuten von der aktuellen Zeit ist, dann echo das "NEW" Banner auf diesem Artikel.PHP Überprüfen, ob Timestamp weniger als 30 Minuten alt ist
Antwort
Verwenden Sie strtotime ("-30 Minuten") und sehen Sie, ob der Zeitstempel Ihrer Zeile größer ist.
Beispiel:
<?php
if(strtotime($mysql_timestamp) > strtotime("-30 minutes")) {
$this_is_new = true;
}
?>
Ich verwende strtotime() zweimal hier Unix-Zeitstempel für Ihr MySQL Datum zu erhalten, und dann wieder zu bekommen, was der Zeitstempel vor 30 Minuten betrug. Wenn der Zeitstempel vor 30 Minuten größer als der Zeitstempel des MySQL-Datensatzes ist, muss er mehr als 30 Minuten erstellt worden sein.
Keine Punkte für die Kürze würde es erscheinen. –
+1. Vielen Dank. Dies ist ein besserer Weg, dies zu tun als das, was ich gemacht habe. Ich mache derzeit: 'if ($ post_date <(time() - 600)) aber mit' strtotime() ', aber es in normales Englisch zu setzen ist ein bisschen einfacher als die Anzahl der Sekunden zu finden, um zu subtrahieren :) – Nathan
@ user1511331 Sie sollten diese Antwort akzeptieren (siehe [Wie funktioniert die Annahme einer Antwort?]) (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235)) half dir. – Nathan
Versuchen Sie, wie das ist etwas, PHP mit DateTime Objekt:
$now = new DateTime();
$then = DateTime($timestamp); // "2012-07-18 21:11:12" for example
$diff = $now->diff($then);
$minutes = ($diff->format('%a') * 1440) + // total days converted to minutes
($diff->format('%h') * 60) + // hours converted to minutes
$diff->format('%i'); // minutes
if ($minutes <= 30) {
echo "NEW";
}
Edit: Mike richtig ist, habe ich vergessen, dass aus irgendeinem Grund nur %a
tatsächlich die Summe seiner Art gibt (in diesem Fall Tage). Alle anderen dienen zum Anzeigen der Zeitformatierung. Ich habe das obige erweitert, um tatsächlich zu arbeiten.
Dies wird nicht funktionieren. Wenn die Zeitdifferenz 1 Stunde 29 Minuten beträgt, wird '$ diff-> Format (" i ")" 29 sein. – Mike
'$ interval = new DateInterval ('PT1H29M'); echo $ interval-> format ('% i minutes'); 'echos' 29 minutes " – Mike
@Mike Ich habe das vergessen, und ich nehme an, dass ich das bekomme, weil ich den Code nicht getestet habe. Ich habe es diesmal getestet und es funktioniert wie erwartet. =) – Crontab
- 1. PostgreSQL: SELECT WHERE weniger als 15 Minuten alt
- 2. Verschiebe Dateien, die 30 Minuten alt sind
- 3. Unix Cron Validierung: Nicht weniger als alle 30 Minuten
- 4. Wie überprüfen DB Stunden und Minuten weniger als aktuelle Stunden und Minuten in PHP?
- 5. Zeitstempel alle 30 Minuten gruppieren
- 6. 30 Minuten Zeit als H formatierten Hinzufügen: i in PHP
- 7. BATCH Windows-: 30 Minuten
- 8. Google Analytics - weniger als n Minuten her
- 9. PHP überprüfen, ob der Zeitstempel größer als 24 Stunden ist
- 10. Fügen Sie 10 Minuten zu 7:30 morgens hinzu PHP
- 11. Überprüfen Sie, ob das Alter über 18 Jahre alt ist
- 12. Überprüfen Sie, ob der Zeitunterschied weniger als 45 Minuten beträgt und führen Sie die Funktion aus - AngularJS
- 13. Überprüfen Sie, ob Datetime in DB ist mehr als 90 Tage alt über Stored Procedure
- 14. Hinzufügen von 30 Minuten zu datetime php/mysql
- 15. PHP - wie $ Timestamp zu verwenden, um zu überprüfen, ob heute Montag oder 1. des Monats ist?
- 16. Daten auswählen, wo Datumzeit weniger als 30 Tage sind
- 17. AnalogClock - alle 30 Minuten Hand-Zeichen ändern?
- 18. überprüfen, ob Checkbox in PHP aktiviert ist
- 19. PHP - Überprüfen Sie, ob Ziel beschreibbar ist
- 20. überprüfen, ob Bild vorhanden ist php
- 21. Alle Artikel erhalten, die weniger als einen Monat alt sind
- 22. MySQL Operationen wie 30:47 (30 Minuten und 47 Sekunden)
- 23. Überprüfen Sie, ob Startdatum ist weniger als Enddatum (ohne jede pluguin zu verwenden)
- 24. Chef Daemon läuft alle 30 Minuten
- 25. Überprüfen Sie die Minuten von time.struct_time Objekt
- 26. Finden, ob das Datum weniger als 7 Tage ist
- 27. ASPX Auth Cookie Ablaufzeit ist immer 30 Minuten
- 28. Timediff ist größer als 2 Minuten
- 29. Fragment-Cache nicht aktualisiert 30 Minuten
- 30. Standortwechsel alle 30 Minuten in Swift senden
Ich finde es interessant, wie niemand Zeit() - 30 * 60 empfiehlt, frage mich, ob ich der einzige bin, der mit Unix-Zeitstempeln als Ganzzahlen direkt arbeiten. – Mahn