MySQL Timestamp mit aktuellem Datum verrechnen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
betrachten
code
date
datenbank
datum
differenz
ermitteln
form
format
funktionieren
http
manual
sekunde
set
spalte
speichern
tabelle
tip
url
verarbeitung
-
Hallo zusammen.
Mein Vorhaben ist es, ein Timestamp aus einer MySQL Tabelle mit dem aktuellen Datum zu vergleichen. Das heißt, ich möchte die Differenz zwischen dem aktuellem Datum und dem Timestamp aus der Tabelle in Sekunden. Der Timestamp aus der Tabelle hat folgendes Format:
2012-12-29 14:27:17
Hier ist mein Code, um das aktuelle Datum zu bestimmen:
$aktuelles_datum = date("Y-m-d"); $aktuelle_uhrzeit = date("H:i:s"); $datum = "$aktuelles_datum $aktuelle_uhrzeit"; echo "<br>$datum";
Ausgegeben wird es also in dem selben Format:
2012-12-29 14:28:33
Wie kann ich jetzt die Differenz der beiden Daten in Sekunden ausrechnen? Sollte ich die Daten dafür in ein anderes Format ändern? Wenn ja in welches?
Ich freue mich sehr über Hilfe.
Liebe Grüße -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
http://php.net/manual/de/function.mktime.php
Damit kannst du, sobald du den Timestamp auseinander gepflückt hast, einen Timestamp in sekunden draus machen. Dann kannst du mittels time() die Momentane Time ermitteln und das voneinander subtrahieren um die Differenz zu betrachten.
Ein Tipp: Speicher in der Datenbank lieber timestamps in Form von Sekunden, ist für die spätere Verarbeitung immer leichter :)
Liebe Grüße -
Also soll ich in der Tabelle noch eine Spalte machen für den Timestamp in Sekunden oder was?
Also so wird bei mir der Timestamp in der Tabelle gespeichert:
$aendern = $mysqli->query("UPDATE tabelle SET timestamp = NOW()");
Oder kann man den Timestamp direkt in Sekunden darein speichern? Hab das mit dem mktime nicht verstanden... Aber danke schon mal für deine Antwort
Beitrag zuletzt geändert: 29.12.2012 15:20:03 von ultimate-bravery -
Warum holst du dir aus der Datenbank nicht gleich den Timestamp ab?
SELECT UNIX_TIMESTAMP(`timestamp`) AS `timestamp` FROM `tabelle`
Die Differenz in Sekunden bekommst du, indem du von
den Timestamp abziehst…time()
-
Ich hab eine Lösung gefunden.
Hiermit wandle ich den MySQL Timestamp in ein PHP Timestamp um:
$php_timestamp = strtotime( $mysql_timestamp );
Dann bekomme ich die aktuelle Zeit mit:
$datum = time();
Und so die Differenz:
$differenz = $datum-$php_timestamp; echo "<br>$differenz";
-
ggamee schrieb:
http://php.net/manual/de/function.mktime.php
Damit kannst du, sobald du den Timestamp auseinander gepflückt hast, einen Timestamp in sekunden draus machen. Dann kannst du mittels time() die Momentane Time ermitteln und das voneinander subtrahieren um die Differenz zu betrachten.
Dazu brauchts keine Basteleien mit PHP.
Ein Tipp: Speicher in der Datenbank lieber timestamps in Form von Sekunden, ist für die spätere Verarbeitung immer leichter :)
Mach das bloß nicht. MySQL hat genügend Funktionen fürs Datum und die Zeit. Da muss man das Datum nicht wieder kaputt machen. DATETIME ist der richtige Typ für Datum & Zeit.
Das sollte funktionieren (kurz getestet):
SELECT TIMESTAMPDIFF(SECOND,'2012-12-28 15:30:02',NOW());
Statt dem Datum musst du nur deine Tabelle angeben.
Beitrag zuletzt geändert: 29.12.2012 19:01:11 von chatter -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage