alois: formatierung eines strings?

hi,

habe ein kleines problem:

meine variable hat den inhalt:     31.11.2003
für die Datenbank muß sie aber so: 2003-11-31 aussehen.
wie kann ich den string umformatieren, bzw. später dann wieder rückformatieren?

danke im voraus für eine konstruktive hilfestellung

alois

  1. Hallo alois,

    meine variable hat den inhalt:     31.11.2003
    für die Datenbank muß sie aber so: 2003-11-31 aussehen.
    wie kann ich den string umformatieren, bzw. später dann wieder rückformatieren?

    Wie wäre es mit folgendem regulären Ausdruck zum Extrahieren der Daten?

    /([0-9]{1,2}).([0-9]{1,2}).([0-9]{2}(?:[0-9]{2})?)/

    Die kannst Du dann mit printf oder number_format o.ä. wieder zusammensetzen.

    Analog heißt der Ausdruck für das Umwandeln aus der Datenbank heraus so:

    /([0-9]{2}(?:[0-9]{2})?)-([0-9]{1,2})-([0-9]{1,2})/

    Christian

    --
    Hast Du einen Beitrag? Nur her damit!
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
    1. Hi christian,

      vorerst mal danke für deine bemühung, aber leider ist mir diese sache etwas zu steil.

      meine variable heißt:

      $dat und hat den inhalt 31.11.2003.

      wie soll´s denn da weitergehen?
      ich kann "mit folgendem regulären Ausdruck" leider nichts anfangen!
      oder ich stehe auf der leitung!!

      alois

      /([0-9]{1,2}).([0-9]{1,2}).([0-9]{2}(?:[0-9]{2})?)/

      Die kannst Du dann mit printf oder number_format o.ä. wieder zusammensetzen.

      Analog heißt der Ausdruck für das Umwandeln aus der Datenbank heraus so:

      /([0-9]{2}(?:[0-9]{2})?)-([0-9]{1,2})-([0-9]{1,2})/

      1. Hallo alois,

        meine variable heißt:

        $dat und hat den inhalt 31.11.2003.

        wie soll´s denn da weitergehen?
        ich kann "mit folgendem regulären Ausdruck" leider nichts anfangen!
        oder ich stehe auf der leitung!!

        /([0-9]{1,2}).([0-9]{1,2}).([0-9]{2}(?:[0-9]{2})?)/

        Nun ja, es gibt die Funktion preg_match, die dazu dient, reguläre Ausdrück auf Zeichenketten anzuwenden, was soviel heißt wie prüfen, ob die Zeichenkette einem bestimmten Muster »folgt« und eventuell noch Informationen aus dieser Zeichenkette zu extrahieren. Das PHP-Handbuch (http://de3.php.net/) gibt mehr Informationen darüber. Sie erwartet als ersten Parameter den regulären Ausdruck, als zweiten den Parameter die Variable, die »gematched« werden soll und als dritten Parameter ein leeres Array. Du wendest diese Funktion also an und wenn diese true zurückgibt, dann weißt Du, dass (a) die Variable wirklich diesen Inhalt hatte und dass (b) in dem Array im dritten Parameter die einzelnen Teile der Zeichenkette drinnen stehen. Wenn Du eine (leere oder nichtexistente) Variable namens $matches als dritten Parameter übergeben hast, dann steht in $matches[1] der Tag, in $matches[2] der Monat und in $matches[3] das Jahr.

        Jetzt klarer?

        Christian

        --
        Hast Du einen Beitrag? Nur her damit!
        http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
        SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
        sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[