Datum formatieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datum formatieren

    Hi @ all!

    Ich bin neu, zum einen hier um Forum, zum anderen im Bereich PHP und MySQL. Ich habe folgendes Problem: Ich habe in meiner DB eine Tabelle mit einer Datumsspalte im Format Date. Darin ist das Datum in dieser Form abgelegt: '2003-04-24'. Meine Frage ist nun, wie ich aus

    2003-04-24 --> 24. April 2003 machen kann.

    Derzeit mache ich diese mit mehreren ereg_replace(). Gibt es dafür auch eine elegantere Möglichkeit?
    Ich habe auch schon die Suchfunktion benutzt, aber nichts passendes gefunden.

    Vielen Dank im voraus für eure Hilfe!
    CU
    Highlander

    VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

  • #2
    Vielleicht sowas:

    Abfrage aus der Datenbank mit SELECT UNIX_TIMESTAMP(datumsattibute) datumsattribute FROM tabelle

    PHP Code:
    setLocale(LC_TIME"de_DE""german");
    echo 
    strftime("%d. %B %Y"$row["datumsattribute"]); 
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Comment


    • #3
      hey,

      Schau dir mal die Funktion mktime an wird dir gefallen.

      Gruss,
      elo
      > Was ist der Sinn einer Sig?
      Tja. Das kann ich Dir jetzt auch gerade nicht sagen.
      Aber eine Gute Frage. Darf ich die als Signatur verwenden?
      (Joachim Jäger, Nils Ketelsen in de.newusers.questions)

      Comment


      • #4
        @ goth, Elo

        Vielen Dank für eure raschen Antworten!
        Ich werd' die beiden Möglichkeiten mal ausprobieren...

        ...und habs auch schon ausprobiert: Wenn ich folgenden Code verwende:
        PHP Code:
        setLocale(LC_TIME"de_DE""german");
        echo 
        strftime("%d. %B %Y"$row["datumsattribute"]); 
        bekomme ich die Meldung:
        Warning: Wrong parameter count for setlocale() in ...
        So, ich hab dann mal im Manual nachgesehen und folgende Code verwendet:
        PHP Code:
        $loc_de setlocale (LC_ALL'de_DE@euro''de_DE''de''ge');
        echo 
        "Preferred locale for german on this system is '$loc_de'"
        Nun bekomme ich immer noch die gleiche Fehlermeldung und der String $loc_de ist leer.
        Last edited by Highlander; 25-04-2003, 05:52.
        CU
        Highlander

        VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

        Comment


        • #5
          So, ich hab jetzt nochmal im Manual nachgesehen (http://www.php.net/manual/de/functio...cale.php#31358).
          Den Code von goth habe ich deswegen so angepasst:
          PHP Code:
          // Original von goth
          setLocale(LC_TIME"de_DE""german");
          echo 
          strftime("%d. %B %Y"$row["datumsattribute"]);

          // geänderte Version wg. Manual
          setLocale(LC_TIMEde_DE);
          echo 
          strftime("%d. %B %Y"$row["datumsattribute"]); 
          Nun ist zwar die Fehlermeldung [COLOR=orangered]Warning: Wrong parameter count for setlocale() in ...[/COLOR] weg, aber mein Datum wird immer noch nicht richtig formatiert - es erscheint überall nur [COLOR=orangered]01. Januar 1970[/COLOR].

          Was mache ich falsch?
          CU
          Highlander

          VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

          Comment


          • #6
            Warning: Wrong parameter count for setlocale() in
            vergleiche mal
            PHP Code:
            setLocale(LC_TIME"de_DE""german"); 
            mit
            PHP Code:
            setLocale(LC_TIMEde_DE); 
            was fällt dir auf?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Comment


            • #7
              Original geschrieben von Abraxax
              vergleiche mal
              . . .
              was fällt dir auf?
              @ Abraxax
              Was mir auffällt ist, das ich die Anführungszeichen aufgrund diesen Beitrags http://www.php.net/manual/de/functio...cale.php#31358 entfernt habe.
              Die Fehlermeldung ist ja nun auch weg, allerdings steht wie schon geschrieben nun halt überall [COLOR=orangered]01. Januar 1970[/COLOR].
              CU
              Highlander

              VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

              Comment


              • #8
                string strftime ( string format [, int Timestamp])

                erwartet einen timestamp und keinen String als zweiten parameter
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Comment


                • #9
                  Was mir auffällt ist, das ich die Anführungszeichen aufgrund diesen Beitrags
                  ich meinte das eher in bezug auf deine fehlermeldung.

                  drei parameter vs. zwei parameter
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Comment


                  • #10
                    Original geschrieben von MelloPie
                    string strftime ( string format [, int Timestamp])

                    erwartet einen timestamp und keinen String als zweiten parameter
                    Ah ja, jetzt kommen wir der Sache schon näher...
                    Kann ich einen String in einen Timestamp umwandeln?
                    CU
                    Highlander

                    VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                    Comment


                    • #11
                      @see Goths erste Antwort (da steht auch ein bissi SQL)
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Comment


                      • #12
                        Original geschrieben von Abraxax
                        ich meinte das eher in bezug auf deine fehlermeldung.

                        drei parameter vs. zwei parameter
                        Achso - sorry hatte ich falsch verstanden!
                        CU
                        Highlander

                        VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                        Comment


                        • #13
                          Original geschrieben von MelloPie
                          @see Goths erste Antwort (da steht auch ein bissi SQL)
                          Mmh, stimmt!
                          Wer lesen kann ist halt klar im Vorteil...
                          ...werd ich gleich mal ausprobieren.
                          CU
                          Highlander

                          VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                          Comment


                          • #14
                            Also irgendwie steh' ich auf dem Schlauch oder was...
                            Wenn ich bei meiner SELECT-Abfrage UNIX_TIMESTAMP() verwende und das dann ausgeben will, bekomm ich nach wie vor [COLOR=orangered]01. Januar 1970[/COLOR].
                            PHP Code:
                            SELECT idUNIX_TIMESTAMP(datefrom), UNIX_TIMESTAMP(dateto), event
                            FROM vwf_termine
                            WHERE datefrom LIKE 
                            '$query'
                            OR dateto LIKE '$query'
                            ORDER BY datefromid DESC;

                            . . .

                            $von strftime("%d. %B %Y"$row["datefrom"]);
                            $bis strftime("%d. %B %Y"$row["dateto"]); 
                            Zum testen hab ich dann mal folgendes gemacht:
                            PHP Code:
                            echo ($row["datefrom"]); 
                            Hier wurde dann auch nichts ausgegeben.

                            Wenn ich testhalber [COLOR=orangered]$von = strftime("%d. %B %Y", $row["datefrom"]);[/COLOR] durch [COLOR=orangered]$von = strftime("%d. %B %Y", 1054332000);[/COLOR] ersetze, dann wird korrekt [COLOR=orangered]31. May 2003[/COLOR] ausgegeben.
                            Was stimmt an meiner SELECT-Abfrage nicht??
                            CU
                            Highlander

                            VW-Freaks.net | VW-Freaks Bildergalerie | VW-Freaks Forum | VW-Freaks Gäste Cars

                            Comment


                            • #15
                              was steht denn in $query?
                              Beantworte nie Threads mit mehr als 15 followups...
                              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                              Comment

                              Working...
                              X