Datum formatieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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]

    Kommentar


    • #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)

      Kommentar


      • #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.
        Zuletzt geändert von Highlander; 25.04.2003, 05:52.
        CU
        Highlander

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

        Kommentar


        • #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

          Kommentar


          • #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 |


            Kommentar


            • #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

              Kommentar


              • #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

                Kommentar


                • #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 |


                  Kommentar


                  • #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

                    Kommentar


                    • #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

                      Kommentar


                      • #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

                        Kommentar


                        • #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

                          Kommentar


                          • #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

                            Kommentar


                            • #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

                              Kommentar

                              Lädt...
                              X