Martin: Zeit format

guten abend zusammen

in meiner mysql datenbank habe ich ein datum gespeichert mit timestamp (20051203193421).
in meinem php möchte ich nun dieses feld formatieren, dass es mir nur den tag, monat und jahr anzeigt. so mache ich es jetzt:

date("d.m.Y", $gb['datum'])

dies gibt mir aber immer das datum "19.01.2038" aus, was leider nicht ganz richtig ist.

hat jemand ein vorschlag, wie man das problem beheben könnte?

danke schon mal im voraus

  1. hallo Martin!
    Vielleicht solltest Du vorab mal prüfen, ob Dein Format überhaupt unterstützt wird von MySql und es -wenn möglich- anpassen:
    http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
    schönen tag noch

  2. Hi Martin,

    timestamp: 20051203193421

    Das ist kein UNIX Timestamp - genau so einen will die Funktion date() aber haben.

    Das da ist lediglich ein 2005 12 03 19 34 21 hintereinander geschrieben. Da musst du mit substr() dran gehen.

    Besser wäre natürlich wenn du entweder direkt einen UNIX Timestamp verwendest oder eine MySQL Spalte DATETIME, die du mit dem SQL Befehl DATE_FORMAT() formatieren kannst.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
    Den Selfcode kann man sich übrigends hier entschlüsseln lassen:
    http://www.peter.in-berlin.de/projekte/selfcode/
    1. echo $begrueszung;

      Besser wäre natürlich wenn du entweder direkt einen UNIX Timestamp verwendest oder eine MySQL Spalte DATETIME, die du mit dem SQL Befehl DATE_FORMAT() formatieren kannst.

      Man kann auch MySQL-Timestamps damit formatieren. Und wenn du noch ein bisschen auf der verlinkten Seite herumstöberst, kannst du auch noch zwei Funktionen entdecken, die Zeit-Werte von und nach Unix-Timestamps umwandeln können...

      Lass mal lieber die Zeitangaben in MySQL-eigenen Formaten speichern, dann kann man bei Bedarf auch noch MySQL damit rechnen lassen.

      echo "$verabschiedung $name";

    2. Hello,

      timestamp: 20051203193421

      Besser wäre natürlich wenn du entweder direkt einen UNIX Timestamp verwendest oder eine MySQL Spalte DATETIME, die du mit dem SQL Befehl DATE_FORMAT() formatieren kannst.

      Nein, das wäre schlechter, da es das eigentlich intelligente Datumsformat von MySQL nicht mehr vollständig ausnutzen würde, also den gültigen Wertebereich verkleinern würde.

      Die Funktion DATE_FORMAT (steht zwischen
      http://dev.mysql.com/doc/mysql/de/date-and-time-functions.html#id2880888
      und
      http://dev.mysql.com/doc/mysql/de/date-and-time-functions.html#id2881451

      leistet hier eigentlich alles, was Du willst. Musst Nur Dein Query entsprechend aufbauen.

      select date_format(FIRSTCLICK,'%d.%m.%Y') as DATUM from ADRESSE;

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi Tom,

        Die Funktion DATE_FORMAT leistet hier eigentlich alles, was Du willst. Musst Nur Dein Query entsprechend aufbauen.

        select date_format(FIRSTCLICK,'%d.%m.%Y') as DATUM from ADRESSE;

        So meinte ich es doch auch - das mit dem UNIX Timestamp habe ich nur der Vollständigkeit erwähnt. Ist das nicht so rübergekommen?

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
        Nicht wundern, wenn jetzt keine Antworten mehr von mir kommen - ich bin ab heute (Sa) im Urlaub ;-)