Berti: Datumsausgabe

Hallo,

gebe so mein Datum aus ...

echo substr($row[date],8,2);
echo '.';
echo substr($row[date],5,2);
echo '.';
echo substr($row[date],2,2);

Typ datetime.

Könnt Ihr mir sagen, wie ich die Uhrzeit zusätzlich ausgeben kann im Format Stunden:Minuten?

Danke, Gruß

  1. Hallo,

    echo substr($row[date],2,2);
    Typ datetime.

    hört sich danach an, als ob Du das Ergebnis einer Datenbankabfrage ausgibst.

    Könnt Ihr mir sagen, wie ich die Uhrzeit zusätzlich ausgeben kann im Format Stunden:Minuten?

    Am bequemsten geht dies, indem man die Daten bereits in der richtigen Form abfragt.
    Welche Funktionen Du dazu nutzen kannst, das hängt vom verwendeten Datenbankmanagementsystem ab, im Fall von MySQL böte sich DATE_FORMAT() an.

    Freundliche Grüße

    Vinzenz

  2. Hello,

    gebe so mein Datum aus ...

    echo substr($row[date],8,2);
    echo '.';
    echo substr($row[date],5,2);
    echo '.';
    echo substr($row[date],2,2);

    Typ datetime.

    Könnt Ihr mir sagen, wie ich die Uhrzeit zusätzlich ausgeben kann im Format Stunden:Minuten?

    Weißt Du denn überhaupt, was Du da tust?
    Ich rate jetzt mal, dass Du das Datum und die Uhrzeit aus einer Datenbank abfragst und es sich beim Datenbankmanagementsystem um eine MySQL-Version handelt. Welche ist es?

    Was steht denn inn $row['date'] drin?
    Bitte benutze die Stringbegrenzer für den Bezeichner des Array-Elementes, wenn Du nicht explizit eine Konstante   date   definiert hast.

    Hast Du schon mal darüber nachgedacht, die Ausgabeformatierung direkt von der Datenbank vorbereiten zu lassen, also ihr den Teil der Arbeit zu übertragen, der die Reihenfolge der Daten im Datenfeld betrifft?

    Es gibt bei den meisten DBMS Funktionen dafür!

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hi,

      MySQL-Version ist 5.0.70.

      Ich habe mir diverse Dinge durchgelesen, bin aber zur keiner Lösung gekommen. Mal wurde ein Datum von 1970 angezeigt, etc.

      Was ich suche, und das soll nicht beleidigend klingen, ist eine konkrete Lösung für das genannte Problem. Ich bin nur eine Art Hobbybastler und habe auch nicht die Zeit, mich einzulesen. Dass Ihr das als Profis anders behandelt, kann ich verstehen, aber Ihr müsst mich bitte auch verstehen.

      Gruß

      Hello,

      gebe so mein Datum aus ...

      echo substr($row[date],8,2);
      echo '.';
      echo substr($row[date],5,2);
      echo '.';
      echo substr($row[date],2,2);

      Typ datetime.

      Könnt Ihr mir sagen, wie ich die Uhrzeit zusätzlich ausgeben kann im Format Stunden:Minuten?

      Weißt Du denn überhaupt, was Du da tust?
      Ich rate jetzt mal, dass Du das Datum und die Uhrzeit aus einer Datenbank abfragst und es sich beim Datenbankmanagementsystem um eine MySQL-Version handelt. Welche ist es?

      Was steht denn inn $row['date'] drin?
      Bitte benutze die Stringbegrenzer für den Bezeichner des Array-Elementes, wenn Du nicht explizit eine Konstante   date   definiert hast.

      Hast Du schon mal darüber nachgedacht, die Ausgabeformatierung direkt von der Datenbank vorbereiten zu lassen, also ihr den Teil der Arbeit zu übertragen, der die Reihenfolge der Daten im Datenfeld betrifft?

      Es gibt bei den meisten DBMS Funktionen dafür!

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      1. Hallo,

        bitte keine Vollzitate.

        MySQL-Version ist 5.0.70.

        Ich habe mir diverse Dinge durchgelesen, bin aber zur keiner Lösung gekommen. Mal wurde ein Datum von 1970 angezeigt, etc.

        *was* hast Du versucht.

        Was ich suche, und das soll nicht beleidigend klingen, ist eine konkrete Lösung für das genannte Problem. Ich bin nur eine Art Hobbybastler und habe auch nicht die Zeit, mich einzulesen.

        Ok, ich habe keine Glaskugel, die mir erzählt, was Du machst und welches Datenbankmanagementsystem Du verwendest.

        Aber statt einfach Deine Datumsspalte abzufragen, kannst Du diese mit

        DATE_FORMAT()

        formatieren. Du willst

        a) die Tagangabe mit zwei Ziffern, d.h. führender Null: %d
        b) den Punkt als Trennzeichen:                          .
        c) den Monat mit zwei Ziffern:                          %m
        d) den Punkt als Trennzeichen:                          .
        e) das Jahr mit zwei Ziffern:                           %y
        f) ein Leerzeichen:
        g) die Stunden zweistellig im 24-Stunden-Format:        %H
        h) einen Doppelpunkt als Trennzeichen:                  :
        i) die Minuten zweistellig                              %i

        Bauen wir's zusammen:

        DATE_FORMAT(datumsspalte, '%d.%m.%y %H:%i')

        SELECT DATE_FORMAT(NOW(), '%d.%m.%y %H:%i') datum

        liefert beispielsweise

        datum
          ----------------
          19.10.2009 14:09

        Willst Du Dein Datum anders formatiert haben, nutze die entsprechenden Konfigurationsangaben aus der Liste, hier als deutsche Version für MySQL 5.1.

        Freundliche Grüße

        Vinzenz

        1. Hallo Ingrid,

          kopiere, was Du nicht abschreiben kannst :-)

          SELECT DATE_FORMAT(NOW(), '%d.%m.%y %H:%i') datum

          liefert selbstverständlich das geforderte

          datum
            ----------------
            19.10.09 14:09

          und nicht 19.10.2009 14:09

          Freundliche Grüße

          Vinzenz

        2. Danke, ich verwende MySQL, Version bereits angegeben und will das Datum mit Php auslesen.

          Gibt es keine Möglichkeit, die Zahlen ...

          echo substr($row[date],8,2);
          echo '.';
          echo substr($row[date],5,2);
          echo '.';
          echo substr($row[date],2,2);

          so zu ändern, dass die Uhrzeit dabei herausspringt?

          Meine Abfrage sieht bisher so aus ...

          $sql = "SELECT * FROM news WHERE

          und wenn ich da jetzt das Datumsding von Dir einbaue, kommen nur noch zwei Punkte heraus.

          1. Hello,

            Gibt es keine Möglichkeit, die Zahlen ...

            echo substr($row[date],8,2);
            echo '.';
            echo substr($row[date],5,2);
            echo '.';
            echo substr($row[date],2,2);

            so zu ändern, dass die Uhrzeit dabei herausspringt?

            Es gibt für PHP ein sehr gutes Online-Manual, das darüber genauestens Auskunft gibt, wie es funktioniert. Guckst Du hier: http://de3.php.net/manual/en/function.substr.php :-)

            Meine Abfrage sieht bisher so aus ...

            $sql = "SELECT * FROM news WHERE

            und wenn ich da jetzt das Datumsding von Dir einbaue, kommen nur noch zwei Punkte heraus.

            Du solltest möglichst nicht mit '*' abfragen, wenn Du nicht alle Spalten brauchst. Hier brauchst Du ja die Spalte date als berechnete Spalte, und nicht als generische (so wie sie normal aus der Tabelle geliefert wird).

            Also frage z.B. ab:

            $sql = "SELECT vorname, name, DATE_FORMAT(date, '%d.%m.%y %H:%i') datum FROM news WHERE ..."

            Und in Deinem $row stehen dann nacher im Element ['datum'] das Datum und die Zeit in der gewünschten Form.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
          2. Hallo Berti,

            Danke, ich verwende MySQL, Version bereits angegeben und will das Datum mit Php auslesen.

            ja, das habe ich verstanden. Ich habe Dir den besten Vorschlag gemacht, den ich Dir machen kann: er ist elegant und einfach.

            Gibt es keine Möglichkeit, die Zahlen ...
            so zu ändern, dass die Uhrzeit dabei herausspringt?

            a) einfach alles richtig machen :-)

            Meine Abfrage sieht bisher so aus ...

            $sql = "SELECT * FROM news WHERE

            und es sieht so aus, als lautete der Name der Spalte, die den Datumswert enthält "date".

            Wo ist das Problem, statt des nicht besonders sinnvollen "SELECT *" entweder

            SELECT  
                <name der ersten Spalte, die Du benötigst>,  
                <name der zweiten Spalte, die Du benötigst>,  
                ...,  
                DATE_FORMAT(`date`, '%d.%m.%y %H:%i') date,  
                <name der letzten Spalte, die Du benötigst>  
            FROM  
                news  
            WHERE  
                <Deine Bedingungen>  
            
            

            oder wenigstens:

            SELECT  
                *,  
                DATE_FORMAT(`date`, '%d.%m.%y %H:%i') mydate  
            FROM  
                news  
            WHERE  
               <Deine Bedingungen>  
            
            

            zu schreiben und dann auf das fertig formatierte Datum zuzugreifen.
            Voraussetzung:

            1. Deine Datumsspalte heißt date
            2. sie ist vom Datentyp datetime.

            Mein Vorschlag mit der expliziten Spaltenliste und der Verwendung der DATE_FORMAT()-Funktion mit den von Dir benötigten Spezifizieren ist der beste Vorschlag, den man Dir machen kann - außer dem, dass Du Dich mit den Grundlagen von PHP, aber auch SQL vertraut machen solltest.

            Freundliche Grüße

            Vinzenz