kostenloser Webspace werbefrei: lima-city


MySQL Timestamp mit aktuellem Datum verrechnen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g****e

    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
  4. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    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
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    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
    time()
    den Timestamp abziehst…
  6. Autor dieses Themas

    ultimate-bravery

    ultimate-bravery hat kostenlosen Webspace.

    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";
  7. 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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!