Martin Hein: Unixtime!=Unixtime ???

Hallo Forum,

Ich arbeite in meiner Anwendung mit einem Datum. Dieses Datum steht
als timestamp zur Verfügung und wird ausschliesslich für die Darstellung per JS bzw. PHP formatiert. Die Logik (z.b. timestamp mit aktuellem timestamp vergleichen) arbeitet natürlich unabhängig von der Formatierung. Diese Datum wird ebenso als timestamp in einer MySQL-Tabelle gespeichert.

Jetzt habe ich versucht, diese Logik in der MySQL-DB anzuwenden und
z.B. alle Datensätze, die kleiner sind als die aktuelle Zeit zu
SELECTieren. Da das Ergebnis von der Anzeigelogik im Frontend abwich,
habe ich mit der Ausgabe unter MySQL rumprobiert.

Mit folgendem Ergebnis:
-----------------------
Der Wert 1183240800 aus der DB rausgeholt und mit PHP formatiert
wird zu 01.07.2008 (was laut php grösser ist als time())

Wenn ich die Funktion FROM_UNIXTIME() auf 1183240800 in meinem
SELECT-Statement anwende, ist das unter MySQL 2007-07-01.

Was läuft da schief ?

besten dank und

vielen gruesse,
martin

  1. Hi,

    Der Wert 1183240800 aus der DB rausgeholt und mit PHP formatiert
    wird zu 01.07.2008 (was laut php grösser ist als time())

    bei mir nicht. Wie lautet Dein Code dazu? Verzichte bitte testweise auf das Auslesen aus der Datenbank.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. echo $begrüßung;

    ... timestamp ...

    Der Begriff timestamp ist zu ungenau. Vielleicht ist das auch dein Verständnisproblem.
    Es gibt zum einen den Unix-Timestamp, der auch von PHP verwendet wird. Dieser ist (meist, z.B. in PHP) ein Integerwert. Und dann gibt es unter MySQL einen Feldtyp namens TIMESTAMP. Ein Feld mit diesem Typ speichert aber nur intern einen Integer-Wert. Nach außen hin tritt es wie ein normales Datumsfeld. Zu beachten ist auch, dass das Darstellungsformat bis Version 4.0 YYYYMMDDhhmmss, also ohne Zwischenzeichen war, und damit bei ungenauem Hinsehen wie ein Integer aussah, ab Version 4.1 standardmäßig dem englischen Format entspricht.

    Der Wert 1183240800 aus der DB rausgeholt und mit PHP formatiert wird zu 01.07.2008

    Das kann ich nicht nachvollziehen

    linuxrechner ~$ php -r 'echo date("r", 1183240800);'

    ergibt bei mir: Sun, 01 Jul 2007 00:00:00 +0200

    echo "$verabschiedung $name";

  3. Hallo Forum,

    entschuldigt den unnötigen Wirbel und danke für eure Mühen.
    Ich muss gestern etwas durcheinander geschmissen haben und
    komme heute zum richtigen Ergebnis.

    beste gruesse,
    martin