Hanjo: Datumsformat

Moin,

aus einer mysql-Datenbank hole ich ein Datum und möchte dies nun in deutscher formatierung ausgeben.

Der Versuch echo date("d.m.Y",$row[3]) scheiterte

Was ist falsch bzw. wie ist es richtig ?

TIA

Hanjo

  1. hallo,

    Es stellt sich die Frage in welchen Format du die Zeit in die Datenbank schreibst.

    Ansonsten finde ich date("d.m.Y") ausreichend, um die aktuelle Zeit auszugeben. Schreibst du das Datum in dieser Form in die Datenbank, kannst du es dann als String ausgeben lassen und dein Problem ist gelöst.

    mfg V@nguard

    1. hallo,

      Es stellt sich die Frage in welchen Format du die Zeit in die Datenbank schreibst.

      Moin,

      es handelt sich um ein date - Format.

      Und nu ?

      Gruß

      Hanjo

      1. Hallo,

        Wandle das Datum direkt bei der Abfrage um:

        SELECT feld1,...,feldn, DATE_FORMAT(datumsfeld,'%d.%m.%Y') AS datum FROM tabelle

        Oder gib den Zeitstempel mittels UNIX_TIMESTAMP(datumsfeld) an die date()-Funktion im PHP-Script zurueck.

        Moeglich waere auch die Umwandlung des Datums mit explode():

        $datum="2003-01-30";
        $jahrmonattag=explode("-",$datum);
        $neuesdatum=$jahrmonattag[2].".".$jahrmonattag[1].".".$jahrmonattag[0];

        MfG, Thomas

  2. aus einer mysql-Datenbank hole ich ein Datum und möchte dies nun in deutscher formatierung ausgeben.

    Der Versuch echo date("d.m.Y",$row[3]) scheiterte

    MySQL und date() speichern Daten in unterschiedlichem Format. MySQL verwendet eine lesbare Zahl, die aus den rückwärts zusammengesetzten Komponenten besteht (JahrMonatTagStundeMinuteSekunde), mit der sich allerdings nicht "normal" rechnen lässt. date() verwendet einen "unix timestamp", die Anzahl der Sekunden seit dem 1.1.1970, 0 Uhr, in Greenwhich-Zeit. Damit lässt sich zwar mit Plus und Minus rechnen, aber als Datum/Zeit erkennbar ist diese Zahl nicht.

    Du kannst entweder date_format() aus der umfangreichen Bibliothek der MySQL-Zeitfunktionen benutzen, um ein Datum als Zeichenkette zu erhalten, oder Du wandelst das MySQL-Datum mit der MySQL-Funktion unix_timestamp() in eben jenes Sekundenformat um und verfütterst diese Zahl an PHPs date().
    Welchen der beiden Wege Du benutzt hängt von Deiner Anwendung und Deinen persönlichen Vorlieben ab.

    Gruß,
      soenk.e