Formatierung von MySQL-Timestamp

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

  • Formatierung von MySQL-Timestamp

    Ich habe hier gelesen, dass man den MySQL-Timestamp mit date() formatieren kann...

    Gleich ausprobiert:

    $datum = date ("d. m. Y", $timestamp);

    Der Timestamp ist "20020324204816" , demnach müsste das Datum "24. 03. 2002" sein, es wird aber "13.12.2016" ausgegeben !

    Was ist falsch? Ich möchte eigentlich

    $datum = date ("d. m. Y | H:i", $timestamp);

    haben, aber das gibt auch komische Werte aus!!!

  • #2
    Re: Formatierung von MySQL-Timestamp

    Original geschrieben von CharActeR
    Der Timestamp ist "20020324204816" , demnach müsste das Datum "24. 03. 2002" sein, es wird aber "13.12.2016" ausgegeben !
    Ein Timestamp ist die Zahl der Sekunden die seit 1970 (glaub ich) vergangen sind. Und nicht einfach nur das Datum ohne Formatierung oder so.

    Original geschrieben von CharActeR
    $datum = date ("d. m. Y | H:i", $timestamp);
    haben, aber das gibt auch komische Werte aus!!!
    Da kommt Tag.Monat.Jahr | Stunde:Minute des Timestamps heraus. So einfach.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Also ehrlich gesagt sieht mehr der MySQL-Timestamp SEHR nach dem unformatierten Datum aus, zumindest wäre es GENAU die Zeit, an dem ich den Eintrag in die Datenbank gemacht habe!

      Also sind entweder
      alle Sekunden von 1970 ab = das richtige Datum
      oder
      es ist eben doch das unformatierte Datum!

      Jedenfalls kommt bei mir was komsiches raus!!!

      Dass "d. m. Y | H:i" "Tag.Monat.Jahr | Stunde:Minute" ergibt, weiß ich auch, bloß es ist eben nicht so!

      Liegt das an Win XP + Apache ???

      Kommentar


      • #4
        Original geschrieben von CharActeR
        Also ehrlich gesagt sieht mehr der MySQL-Timestamp SEHR nach dem unformatierten Datum aus, zumindest wäre es GENAU die Zeit, an dem ich den Eintrag in die Datenbank gemacht habe!

        Also sind entweder
        alle Sekunden von 1970 ab = das richtige Datum
        oder
        es ist eben doch das unformatierte Datum!
        Wies aussieht ist egal.
        Glaubst du mir etwa nicht ?


        Original geschrieben von CharActeR
        Jedenfalls kommt bei mir was komsiches raus!!!

        Dass "d. m. Y | H:i" "Tag.Monat.Jahr | Stunde:Minute" ergibt, weiß ich auch, bloß es ist eben nicht so!
        Ja, gibt mir mehr Infos. Ich will mehr mehr mehr.
        Mal ernsthaft: Was ist die Ausgabe genau ?
        Welchen Wert hat $timestamp ?

        PS: Merk dir das mal, man kann dir nicht helfen, wenn niemand weiß, was Sache ist
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          Re: Formatierung von MySQL-Timestamp

          Original geschrieben von CharActeR
          Ich habe hier gelesen, dass man den MySQL-Timestamp mit date() formatieren kann...
          Wo hast Du das gelesen?

          Meinst Du nicht etwa
          select DATE_FORMAT(datumintabelle,'%d.%m.%Y | %H:%i') AS anzeigedatum from tabelle order by datumintabelle
          ??
          Zuletzt geändert von hand; 24.03.2002, 22:55.

          Kommentar


          • #6
            @troublegum
            Ja, gibt mir mehr Infos. Ich will mehr mehr mehr.
            Mal ernsthaft: Was ist die Ausgabe genau ?
            Welchen Wert hat $timestamp ?

            PS: Merk dir das mal, man kann dir nicht helfen, wenn niemand weiß, was Sache ist
            Hab ich doch alles angegeben :

            Der Timestamp ist "20020324204816" , demnach müsste das Datum "24. 03. 2002" sein, es wird aber "13.12.2016" ausgegeben
            @hand
            Wie geht Date_Format / Muss ich date_format verwenden, um einen MySQL-Timestamp zu formatieren?!

            Gelesen hab ich das hier:
            http://www.php-resource.de/forum/sho...ql+formatieren

            Kommentar


            • #7
              Du bist ein schwerer Fall.
              "13.12.2016" nennst du eine komische Ausgabe ?
              Aber "20020324204816" liefert auf meinem System "19.1.2038 - 4:14"


              Du scheinst nicht begriffen zu haben, was ich geschrieben habe.
              Ein Timestamp ist die Zahl der Sekunden die seit 1970 (glaub ich) vergangen sind. Und nicht einfach nur das Datum ohne Formatierung oder so.

              Schau mal ins php Manual und such nach time,Timestamp und date
              [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
              [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
              [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

              © Harald Schmidt

              Kommentar


              • #8
                Du bist ein schwerer Fall.
                Danke

                Das mit dem "19.1.2038 - 4:14" hatte ich bei dem gleichen Wert auch schon!

                Gut, dann sind es eben die Sekunden von da an, aber du musst zugeben, dass es genau dem heutigen Datum entspricht, wenn man es nur als unformatiert ansieht!!!

                Zufall? Glaub ich nicht, denn es ist irgendwie immer so...

                Wenn es nun (was ich mittlerweile begriffen habe) doch die Sekunden sind, wie bekomme ich das dann in ein richtiges Datum?!?! Sag halt!

                Kommentar


                • #9
                  20020324204816 ist kein timestamp im herkömmlichhen Sinn. Das ist eine Zeitausgabe JJJJMMTTHHmmss. Ein timestamp ist ansich ein Zeitwert der in Sekunden angegeben ist.

                  Auf Deine Frage, ob Du DATE_FORMAT verwenden mußt, behaupte ich JA. Im Thread den Du da angegeben hast geht's vermutlich um dasselbe Mißverständnis. Der Beitrag von schmalle dort irritiert mich ein wenig, denn ich kenne diese Methode/Lösung nicht, was aber nichts zu bedeuten hat. Auf jeden Fall ist das dort in diesem Thread sicher nicht die Lösung, da auch dort das Datum im Format JJJJMMTTHHmmss angegeben ist.

                  Beim Auslesen aus der Datenbank kannst Du DATE_FORMAT verwenden, um die Datumsdarstellung Deinen Bedürfnissen anzupassen.

                  select DATE_FORMAT(datumintabelle,'%d.%m.%Y | %H:%i') AS anzeigedatum from tabelle order by datumintabelle

                  Ergebnis: 24.03.2002 | 20:48


                  Code:
                  DATE_FORMAT(date,format)
                  Formats the date value according to the format string. The following specifiers
                  may be used in the format string:
                  %M Month name (January..December)
                  %W Weekday name (Sunday..Saturday)
                  %D Day of the month with English sufix (1st, 2nd, 3rd, etc.)
                  %Y Year, numeric, 4 digits
                  %y Year, numeric, 2 digits
                  %X Year for the week where Sunday is the First day of the week, numeric, 4 digits, used with '%V'
                  %x Year for the week, where Monday is the First day of the week, numeric, 4 digits, used with '%v'
                  %a Abbreviated weekday name (Sun..Sat)
                  %d Day of the month, numeric (00..31)
                  %e Day of the month, numeric (0..31)
                  %m Month, numeric (01..12)
                  %c Month, numeric (1..12)
                  %b Abbreviated month name (Jan..Dec)
                  %j Day of year (001..366)
                  %H Hour (00..23)
                  %k Hour (0..23)
                  %h Hour (01..12)
                  %I Hour (01..12)
                  %l Hour (1..12)
                  %i Minutes, numeric (00..59)
                  %r Time, 12-hour (hh:mm:ss [AP]M)
                  %T Time, 24-hour (hh:mm:ss)
                  %S Seconds (00..59)
                  %s Seconds (00..59)
                  %p AM or PM
                  %w Day of the week (0=Sunday..6=Saturday)
                  Ich hoffe das hilft Dir ein wenig.

                  Kommentar


                  • #10
                    Was Du aber noch machen kannst ist das Datum, daß Dui da hast
                    über substr() zerlegen.

                    http://www.php.net/manual/de/function.substr.php

                    20020324204816

                    Also die ersten vier Zeichen sind das Jahr
                    dann folgen 2 Zeichen Monat
                    usf.

                    Kommentar


                    • #11
                      Dann hatte ich doch recht, dass es ein unfromatiertes Datum ist...
                      Dann war der Begriff TIMESTAMP nur ein Missverständnis, denn in meiner MySQL Tabelle hat die Spalte DATUM den Typ TIMESTAMP...

                      Dann wird das Datum unformatiert ausgespuckt!
                      Troublegum meinte mit Timestamp was anderes als ich, denn ich meinte das Datum bei MySQL, was als TIMESTAMP bezeichnet wird, aber keiner ist!

                      Also war das nur ein großes Missverständnis, Friede, Freue, Eierkuchen!

                      Das die das auch nicht richtig erklären können, die Leute, die die Referenzen schreiben, da steht nämlcih drin, mit date() wird ein Timestamp formatiert, dass der TIMESTAMP von MySQL aber keiner ist, wird nicht gesagt!

                      Kommentar


                      • #12
                        Original geschrieben von CharActeR
                        Das die das auch nicht richtig erklären können, die Leute, die die Referenzen schreiben, da steht nämlcih drin, mit date() wird ein Timestamp formatiert, dass der TIMESTAMP von MySQL aber keiner ist, wird nicht gesagt!
                        Kannst du das belegen ?
                        Link ? Zitat ?
                        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                        © Harald Schmidt

                        Kommentar


                        • #13
                          OK, es wird indirekt erwähnt, ist ja gut... dafür musste ich aber sehr genau hinschauen!

                          To convert a MySQL timestamp to a Unix-style timestamp, use MySQL's
                          UNIX_TIMESTAMP function.

                          For Example:
                          $result=mysql_query ("SELECT UNIX_TIMESTAMP(timestamp_column) as
                          epoch_time FROM table");

                          $unix_timestamp = mysql_result ($result, 0, 0);
                          date() konvertiert UNIX-Timestamps, aber nicht MySQL-Timestamps!

                          Das steht aber 8soweit ich weiß) nicht unter dem befehl date(), sondern nur (obiges Zitat) unter time()

                          http://www.php.net/manual/de/function.date.php

                          http://www.php.net/manual/de/function.time.php

                          Und woher sollte ich wissen, was ein UNIX-Timestamp ist, wenn ich nur den anderen kenne... ich bin halt neu hier und lerne erst seit gestern PHP... sorry...

                          Kommentar


                          • #14
                            Original geschrieben von CharActeR
                            OK, es wird indirekt erwähnt, ist ja gut... dafür musste ich aber sehr genau hinschauen!



                            date() konvertiert UNIX-Timestamps, aber nicht MySQL-Timestamps!

                            Das steht aber 8soweit ich weiß) nicht unter dem befehl date(), sondern nur (obiges Zitat) unter time()

                            http://www.php.net/manual/de/function.date.php

                            http://www.php.net/manual/de/function.time.php

                            Und woher sollte ich wissen, was ein UNIX-Timestamp ist, wenn ich nur den anderen kenne... ich bin halt neu hier und lerne erst seit gestern PHP... sorry...
                            Das ist doch unmissverständlich. IMHO gibt es keinen Unterschied zwischen Unix und mySQL Timestamp. Beides sind Timestamps und ist die Anzahl der Sekunden, die seit 1970 vergangen sind.

                            Was dich verwirrt hat, war die Tatsache, dass jeder von Timestamp redet, obwohl dein Wert gar keiner war.
                            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                            © Harald Schmidt

                            Kommentar


                            • #15
                              Na gut, aber er der Type in der MySQL-Datenbank ist TIMESTAMP !!! Was kann ich dafür, wenn er mir stattdessen das aktuelle, unformatierte Datum ausgibt?!

                              Kommentar

                              Lädt...
                              X