Steve: Hilfe bei Datumwandlung

Halo Forumler,

Ich dreh gleich durch!
ich find den Fehler nicht:
folgender Code:
---------------------------------
$abfragemonat = "11";
$abfragejahr = "2003";
$sc_datum = "0,0,0,".$abfragemonat.",1,".$abfragejahr;
$sc_datum1 = mktime($sc_datum);
$sc_datum2 = date("d.m.Y",$sc_datum1);

echo "datum: ".$sc_datum2;
---------------------------------

sollte doch eigentlich folgendes auswerfen: "datum: 01.11.2003"

stattdessen bekomme ich den hier: "datum: 14.11.2003"

hat jemand ne Idee woran es liegt?
Danke!
Steve.

  1. Hello,

    Ich dreh gleich durch!

    mal langsam, trink nen Cognac...

    ich find den Fehler nicht:

    das kann jedem passieren

    folgender Code:

    gut, jetzt wird's spannend


    $abfragemonat = "11";

    würde ich als    = 11;   nehmen

    $abfragejahr      = "2003";

    würde ich auch als   = 2003;   nehmen

    $sc_datum = "0,0,0,".$abfragemonat.",1,".$abfragejahr;
    $sc_datum1 = mktime($sc_datum);

    mktime will aber Integer und nicht String!

    $sc_datum2 = date("d.m.Y",$sc_datum1);

    echo "datum: ".$sc_datum2;

    Und schau Dir mal die Monsterfunktion strtotime() an.

    Die lohnt sich wirklich

    Grüße

    Tom

    1. Danke erstmal!

      Ich dreh gleich durch!
      mal langsam, trink nen Cognac...

      Gut hab ich ;-)

      $abfragemonat = "11";
      würde ich als    = 11;   nehmen

      (klar! tippfehler (var wird generiert)

      $abfragejahr      = "2003";
      würde ich auch als   = 2003;   nehmen

      (klar! tippfehler (var wird generiert)

      Und schau Dir mal die Monsterfunktion strtotime() an.

      gut...feine Sache, aber:
      ----
      $sc_dat = strtotime ("1 november 2003");
      $sc_dat1 = date("d.m.Y",$sc_dat);
      echo $sc_dat1;
      ----
      bringt: 01.11.2003

      $sc_dat = strtotime ("1 11 2003");
      bringt: 01.01.1970

      da ich aber die Monatsangabe Numerisch hab!?

      vielleicht bin ich auch auf dem ganz falschen Dampfer...
      Ich will einfach nur aus $monat und $jahr den Wochentag des Monatsersten. Gibt es dafür vielleicht sogar ne extra funktion?

      grüsse Steve.

      1. hi,

        $sc_dat = strtotime ("1 11 2003");
        bringt: 01.01.1970

        was ist "1 11 2003"?

        schon mal mit punkten zwischen tag, monat und jahr probiert?

        gruss,
        wahsaga

        1. hallo,

          schon mal mit punkten zwischen tag, monat und jahr probiert?

          jep, gleiches Ergebnis!

          strtotime ("1 11 2003") >> -1
          strtotime ("1.11.2003") >> -1
          strtotime ("1 Nov 2003") >> OK
          strtotime ("1 November 2003") >> OK
          strtotime ("1.November.2003") >> -1

          grüsse
          Steve.

          1. Hallo,

            strtotime ("1.11.2003") >> -1

            Selbst wenn es funktionieren wuerde, dann wohl nicht
            in Deinem Sinne. aa.bb.yyyy ist _nicht_ eindeutig.
            Fuer einen US-Amerikaner ist das der 11. Januar 2003,
            fuer normale Menschen dagegen der 1. November 2003.

            Auf der Seite zu strtotime() im PHP-Manual
            http://www.php.net/manual/de/function.strtotime.php
            hat es einen Link zur Seite im GNU-Manual
            http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html
            wo genaueres dazu steht, wie der String aufgebaut sein sollte.

            Versuch's sonst mal mit dem ISO-8601-Format:
            2003-11-01

            Gruesse,

            Thomas

            1. Hello,

              Fuer einen US-Amerikaner ist das der 11. Januar 2003,
              fuer normale Menschen dagegen der 1. November 2003.

              Höre ich da eine "PRO-EUROPA Stimmung" heraus?

              Grüße

              Tom

              1. Hallo,

                Fuer einen US-Amerikaner ist das der 11. Januar 2003,
                fuer normale Menschen dagegen der 1. November 2003.

                Höre ich da eine "PRO-EUROPA Stimmung" heraus?

                Ja, durchaus.

                Du hast das Subject nicht zu Ende formuliert. Was wolltest Du wirklich sagen?

                Gruesse,

                Thomas

      2. Hello,

        $sc_dat = strtotime ("1 11 2003");
        bringt: 01.01.1970

        Kein Wunder. StrToTime wandelt ja nun wieder eine String in eine Datumsrefetrenzzahl (Unix-Timestamp) um.

        Da die Funktion auch nacheinander verschiedene Sprachen durchtestet, wären hier die für das deutsche Datumsformat typischen Punkte nicht falsch gewesen.

        date("d.m.Y",strtotime("1.11.2003"));

        sollte wieder 1.11.2003 ergeben.

        Musst einfach mal ein Bisschen damit spielen, um sicherer zu werden. Dann aber ohne Cognac ;-))

        Grüße

        Tom

        1. Hi,

          Musst einfach mal ein Bisschen damit spielen, um sicherer zu werden. Dann aber ohne Cognac ;-))

          langsam krieg ich auch keinen mehr runter.... *g*

          also, habs jetzt folgendermasen gelöst:
          ------
          $sc_datum1 = mktime(0,0,0,$abfragemonat,1,$abfragejahr);
          $sc_datum2 = date("d.m.Y",$sc_datum1);
          echo "datum: ".$sc_datum2;
          ------

          somit bekomme ich immer den 1. des Monats (mit dem ich dann formatiert den Wochentag ausgeben kann)

          eigentlich ganz simpel, gell? ;-)

          Grüsse an alle, und vielen Dank!
          Steve.