Karsten: MySQL Timestamp aus der DB ausgeben

Hallo,

hier einmal mein Quelltext:

<?php
$sql = "SELECT fwId, fwName, fwDatum, fwGruendung, fwMitglieder FROM feuerwehr ORDER BY fwName ASC;";
$result = mysql_query($sql) or die(mysql_error());
while( $row = mysql_fetch_assoc($result) ) { ?>
  <tr>
    <td><?php echo $row["fwId"]; ?></td>
    <td><?php echo $row["fwName"]; ?></td>
    <td><?php echo $row["fwDatum"]; ?></td>
    ...

Die Datenban ksieht so aus:
CREATE TABLE feuerwehr (
  fwId int(2) NOT NULL auto_increment,
  fwDatum TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  fwName varchar(30) NOT NULL default '0',
  fwGruendung int(25) NOT NULL default '0',
  fwMitglieder int(3) NOT NULL default '0',
  berichtId int(9) NOT NULL default '0',
  PRIMARY KEY  (fwId)
);

Nun wird aber das Datum immer nach dem Muster YYYY-MM-TT HH:MM:SS gespeichert. Wie kann ich aber nun dieses Datum nach eigener Formatierung ausgeben. Ich will an bestimmten stellen nur das Datum TT.MM.YYYY habe und an anderen noch ganz anders. Wie kann ich diese ausgabe steuern?

Danke Karsten

  1. habe d'ehre Karsten

    Nun wird aber das Datum immer nach dem Muster YYYY-MM-TT HH:MM:SS gespeichert. Wie kann ich aber nun dieses Datum nach eigener Formatierung ausgeben. Ich will an bestimmten stellen nur das Datum TT.MM.YYYY

    Einfach auf das deutsche Format umformen.
    z.B. $date_field = substr($value, 8, 2).".".substr($value, 5, 2).".".substr($value, 0, 4);

    man liest sich
    Wilhelm

    1. Moin!

      Nun wird aber das Datum immer nach dem Muster YYYY-MM-TT HH:MM:SS gespeichert. Wie kann ich aber nun dieses Datum nach eigener Formatierung ausgeben. Ich will an bestimmten stellen nur das Datum TT.MM.YYYY

      Einfach auf das deutsche Format umformen.
      z.B. $date_field = substr($value, 8, 2).".".substr($value, 5, 2).".".substr($value, 0, 4);

      Aber doch nicht mit PHP!!!

      MySQL bietet wunderschöne Funktionen zur Formatierung von DATE, DATETIME, TIME und TIMESTAMP an. Die packt man einfach mit ins SELECT, und schon hat man das gewünschte Format im Query-Result.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. habe d'ehre Sven

        Aber doch nicht mit PHP!!!

        MySQL bietet wunderschöne Funktionen zur Formatierung von DATE, DATETIME, TIME und TIMESTAMP an. Die packt man einfach mit ins SELECT, und schon hat man das gewünschte Format im Query-Result.

        Mag so sein, aber wenn ich z.B. die Daten in einer Anwendung nach verschiedenen Spalten sortieren moechte, bin ich mit MySQL-Format im Speicher auf der besseren Seite.

        man liest sich
        Wilhelm

        1. Moin!

          MySQL bietet wunderschöne Funktionen zur Formatierung von DATE, DATETIME, TIME und TIMESTAMP an. Die packt man einfach mit ins SELECT, und schon hat man das gewünschte Format im Query-Result.

          Mag so sein, aber wenn ich z.B. die Daten in einer Anwendung nach verschiedenen Spalten sortieren moechte, bin ich mit MySQL-Format im Speicher auf der besseren Seite.

          MySQL sortiert doch auch prima. Oder was meinst du genau? Im Zweifel einfach doppelt abfragen. :)

          - Sven Rautenberg

          --
          "Love your nation - respect the others."
          1. habe d'ehre Sven

            Mag so sein, aber wenn ich z.B. die Daten in einer Anwendung nach verschiedenen Spalten sortieren moechte, bin ich mit MySQL-Format im Speicher auf der besseren Seite.

            MySQL sortiert doch auch prima. Oder was meinst du genau? Im Zweifel einfach doppelt abfragen. :)

            Liege ich mit meiner Behauptung so falsch, dass Zugriffe auf im Speicher befindliche Daten eindeutig schneller als Zugriffe auf die Datenbank sind? Wozu nochmal auf die Datenbank zugreifen wenn ich alle Daten schon im Speicher habe.

            man liest sich
            Wilhelm

            1. echo $begrüßung;

              Liege ich mit meiner Behauptung so falsch, dass Zugriffe auf im Speicher befindliche Daten eindeutig schneller als Zugriffe auf die Datenbank sind?

              Nein, aber ...

              Wozu nochmal auf die Datenbank zugreifen wenn ich alle Daten schon im Speicher habe.

              ... wieso nochmal?

              SELECT formatfunktion(datumsspalte)

              und schon bekommt man den Wert gleich im gewünschten Format von der Datenbank zurück. Das ist auch noch eine Ecke eindeutiger, da irgendein Nasenbär das Default-Datumsausgabeformat verbogen haben kann und dann schnippelt deine substr-Methode an den flaschen Stellen rum.

              echo "$verabschiedung $name";

              .oO( Ich hab doch nicht etwas flasch flasch geschrieben? )

              1. habe d'ehre dedlfix

                ich sagte: "Daten in einer Anwendung nach verschiedenen Spalten sortieren"

                Warum zum Geier soll ich nochmal in die DB rein.

                da irgendein Nasenbär das Default-Datumsausgabeformat verbogen haben kann und dann schnippelt deine substr-Methode an den flaschen Stellen rum.

                Klar, wenn man den Timestamp manuell manipulieren laesst oder keine vernuenftige Formatpruefung einsetzt. ;-) Fragt sich dann nur, wer in so einem Fall der Nasenbaer ist. :-)

                man liest sich
                Wilhelm

                1. yo,

                  ich sagte: "Daten in einer Anwendung nach verschiedenen Spalten sortieren"

                  naja, kann man auch aber so verstehen, eine abfrage über mehrere spalten zu sortieren. wenn die eine abfrage aber auf unterschiedliche weise sortiert werden soll, dann hast du recht.

                  Ilja

                2. echo $begrüßung;

                  ich sagte: "Daten in einer Anwendung nach verschiedenen Spalten sortieren"

                  Warum zum Geier soll ich nochmal in die DB rein.

                  In dem Fall gebe ich dir Recht (ich las etwas flüchtig gestern Abend), aber für PHP ist das von wenigen Ausnahmen abgesehen nicht relevant. Da wird ein Request abgearbeitet und fertig ist die "Anwendung". Ein neuer Request bedeutet eine neue "Anwendung" und damit eine neue Datenabfrage. Und dann kann die Datenbank gleich selbst sortieren und formatieren.

                  Natürlich könnte man auf die Idee kommen, die Daten zwischen den Requests zu speichern - zum Beispiel in einer Session. Doch bevor man sowas anfängt, sollte man genau abwägen, wieviel Gewinn das unter welchen Bedingungen (z.B. Datenmenge) bringt und ob die damit verbundene erhöhte Komplexität der Anwendung notwendig/gerechtfertigt ist.

                  echo "$verabschiedung $name";