Roger: string formatieren

moin!

ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.
in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)

gruß.
roger.

--
meine freundin sagt, ich wäre neugierig.
so steht's zumindest in ihrem tagebuch.
  1. Hallo,

    in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)

    Das Zauberwort könnte "db_date2my_date()" heißen und lässt sich bequem als eigene kleine Funktion realisieren.

    Tipp: nicht immer so faul sein.

    LG
    Chris

    1. moin!

      ich hätte jetzt mit substr() losgefrickelt. wollte nur mal ein paar andere meinungen hören und mich belehren lassen.
      hätte ja sein können, dass es da was simples gibt und ich nicht drauf komme...

      gruß.
      roger.

      --
      meine freundin sagt, ich wäre neugierig.
      so steht's zumindest in ihrem tagebuch.
      1. Hallo Roger,

        wollte nur mal ein paar andere meinungen hören und mich belehren lassen.

        Sorry, wenn das hier immer so rüberkommt.
        Wenn Du MySQL benutzt, dann schau doch auch mal unter "date_format"
        http://dev.mysql.com/doc/refman/4.0/de/date-and-time-functions.html

        LG
        Chris

        1. moin!

          der string kommt aus ner dbase db. also sind die mittel da recht bescheiden. und da 20060202 nun mal imho kein gültiges datumsformat ist (dazu fehlen ja die bindestriche, die ich dazwischen bekommen möchte) kann ich mir auch nicht vorstellen, das mittels date, bzw mkdate umzuwandeln. mit nem unixtimestamp sähe das schon anders aus...
          und strtotime braucht auch "was gültiges". :)

          gruß.
          roger.

          --
          meine freundin sagt, ich wäre neugierig.
          so steht's zumindest in ihrem tagebuch.
          1. Hallo,

            der string kommt aus ner dbase db.

            Ist die Mutter aller PC-Datenbanken mit Plan ;-))
            Und die Leute von Ahton Tate und später von Borland waren nicht doof!

            also sind die mittel da recht bescheiden. und da 20060202 nun mal imho kein gültiges datumsformat ist

            Veto: Bitte Fragesteller tauschen *grins*
            Das ist gültige und übliche ANSI-Notation für ein Datum

            (dazu fehlen ja die bindestriche, die ich dazwischen bekommen möchte) kann ich mir auch nicht vorstellen, das mittels date, bzw mkdate umzuwandeln. mit nem unixtimestamp sähe das schon anders aus...

            Das ost allerdigns richtig, denn diese Funktionen beziehen sich auf spezielle Unix-Formate.

            Du müsstest also für "ansi2mydate()" eigene Regeln schaffen.

            substr() wird Dein Freund sein
            http://de3.php.net/substr

            LG
            Chris

            1. moin!

              substr() war bereits mein freund. deswegen ja der anfangspost. substr() sieht einfach zu umständlich aus.

              $datum = substr($zeile[4],0,4)."-".substr($zeile[4],4,2)."-".substr($zeile[4],6,2);

              gruß.
              roger.

              --
              meine freundin sagt, ich wäre neugierig.
              so steht's zumindest in ihrem tagebuch.
              1. Hallo Roger,

                substr() war bereits mein freund. deswegen ja der anfangspost. substr() sieht einfach zu umständlich aus.

                das liegt nun aber an PHP.
                Du könntest aber auch nochmal bei den pack-Funktionen schauen...
                http://de3.php.net/manual/de/function.pack.php
                http://de3.php.net/manual/de/function.unpack.php

                Variante Records (Pascal) sind mir auch viel lieber, als dieder ganze Oberhead.

                LG
                Chris

    2. Hallo,

      in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)

      Das Zauberwort könnte "db_date2my_date()" heißen und lässt sich bequem als eigene kleine Funktion realisieren.

      ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)

      Tipp: nicht immer so faul sein.

      LG
      Chris

      Gruß, der Hilker

      1. Hallo,

        ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)

        Nichts dagegen einzuwenden.
        Nur dafür muss man wissen, welche Datenbank benutzt wird.

        "20060202" für den 02. Februar 2006 ist aber ein geeignetes Austauschformat (ANSI-Date) und daher könnte man die Leistung auch ins PHP legen. Man weiß schließlich bisher nicht, welche DBMS der OP alles (gleichzeitig) benutzt und da ist ANSI-Date eine geeignete Schnittstelle.

        LG
        Chris

        1. Hallo,

          ich würde mich auch eher Vicent's Antwort anschließen... lass alles was geht doch die Datenbank machen :)

          Nichts dagegen einzuwenden.
          Nur dafür muss man wissen, welche Datenbank benutzt wird.

          stimmt wohl, ich muß aber manchmal einfach meinen Senf dazugeben :) Wobei ich i.d.R. halt viele Aufgaben bei der Datenbank belasse, da die halt in den meisten fällen recht gut mit Daten arbeiten kann :)

          Das Ganze ist eher als genereller Tip an den OP zu sehen.

          "20060202" für den 02. Februar 2006 ist aber ein geeignetes Austauschformat (ANSI-Date) und daher könnte man die Leistung auch ins PHP legen. Man weiß schließlich bisher nicht, welche DBMS der OP alles (gleichzeitig) benutzt und da ist ANSI-Date eine geeignete Schnittstelle.

          LG
          Chris

          Gruß, der Hilker

          P.S. schon 'ne mail wegen dem Newsletter Teil?
          Das man eine Adresse hinterlassen soll, hatte ich ja beim ersten lesen völlig übersehen. *pein* Ich selbst komme ja auch ursprünglich aus der Baubranche daher würde mich das natürlich Interessieren :)

          1. Hallo,

            stimmt wohl, ich muß aber manchmal einfach meinen Senf dazugeben :) Wobei ich i.d.R. halt viele Aufgaben bei der Datenbank belasse, da die halt in den meisten fällen recht gut mit Daten arbeiten kann :)
            Das Ganze ist eher als genereller Tip an den OP zu sehen.

            Das ist aber nicht ganz korrekt.
            Generelle Tipps sollten auch zu generellen oder zumindest statistisch vorwiegend gültigen Lösungen führen.
            Unter diesem Aspekt hate ich "ANSI-Date" als passendes Übergabeformat angenommen. Das können nämlich die meisten Systemen liefern und edie meisten Systeme übernehmen.

            Folglich würde die Aufgabe der Umwandlung in ein privates Format immer beim übernehmenden System liegen. Damit wäre die Lösung am wenigstens Service-anfällig.

            Lernt man solche Überlegeungen heute überhaupt noch? ;-)

            LG
            Chris

            1. Hallo,

              Moinsen :)

              Das ist aber nicht ganz korrekt.
              Generelle Tipps sollten auch zu generellen oder zumindest statistisch vorwiegend gültigen Lösungen führen.
              Unter diesem Aspekt hate ich "ANSI-Date" als passendes Übergabeformat angenommen. Das können nämlich die meisten Systemen liefern und edie meisten Systeme übernehmen.

              Folglich würde die Aufgabe der Umwandlung in ein privates Format immer beim übernehmenden System liegen. Damit wäre die Lösung am wenigstens Service-anfällig.

              Lernt man solche Überlegeungen heute überhaupt noch? ;-)

              Ja, OK - Du hast mich ja überredet, und je länger ich drüber nachdenke, desto mehr hätte ich mir das Posting sparen können! :)
              Über das P.S. sprichste nicht wie :) OK, ist ja auch verständlich!

              LG
              Chris

              Gruß, der Hilker

              1. Hallo Hilker,
                nke, desto mehr hätte ich mir das Posting sparen können! :)

                Über das P.S. sprichste nicht wie :) OK, ist ja auch verständlich!

                Sorry, nein. Da ist noch nichts gekommen.
                Zur Not ruhig nochmal senden, aber bitte nur mit deutschen Betreff.
                Ich bin leider selber heute ab ca. 24:00 Uhr off.
                Ich habe heute erfahren, dass meine spanische Feuerversicherung mein kleines Häuschen in Tarifa nun doch wieder aufbauen lässt *freu*. Die Kumpels dort haben schon angefangen. Nun werde ich die nächsten acht Wochen bestimmt keinen vernünfigen DSL-Anschluss haben und auch keine Zeit. Aber Horst und Tom sind sowieso die besseren Web-Programmierer und haben sowas auch schon öfter gemacht. Ich sehe sie nun leider aber nicht mehr rechtzeitig.

                LG
                Chris

  2. Hallo Roger,

    ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.

    Vielleicht bietet Dein Datenbankmanagementsystem (DBMS) bereits eine entsprechende  Funktion. Befrage dessen Handbuch.

    Falls nicht, befrage das PHP-Handbuch. Falls Du das auch nicht willst, könntest Du dem Tipp von Chris folgen ;-)

    Freundliche Grüße

    Vinzenz

  3. Hi Roger,

    ich habe in einer datenbank ein zeitstempel stehen, den ich umwandeln möchte. ich möchte aus 20060202 (in db) ein 2006-02-02 machen.
    in php gibt's doch da bestimmt ein zauberwort? :) (sprintf()?)

    sprintf() wäre ja auch mit substr().

    Ich mach sowas immer mit einer regexp: ([0-9]{4})([0-9]{2})([0-9]{2})
    Wie das von der Performance her ist, weiß ich auch nicht.

    Viele Grüße aus Freiburg,
    Marian

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->