Andreas: Monat 06 als Juni anzeigen

Hallo

ich habe ein Datumformat JJJJ-MM-TT (2003-06-01)
in der Datenbank.

Ich möchte das der Monat "06" als Monat "Juni" ausgegeben wird.

Also Array:
$m_array = array('Dezember','Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November');

//nur den Monat auslesen
$monatsauswahl = substr($zeile["datum"], 5,2);

//echo $monatsauswahl gibt 06 aus

echo $m_array[$monatsauswahl];

jetzt erhalte ich gar nichts

wo ist mein Fehler

wer kann mir einen Tipp geben ?

Danke

  1. Hallo,
    machs so:

    <?php
      $monate = array(1=>"Januar",
                      2=>"Feber",
                      3=>"März",
                      4=>"April",
                      5=>"Mai",
                      6=>"Juni",
                      7=>"Juli",
                      8=>"August",
                      9=>"September",
                      10=>"Oktober",
                      11=>"November",
                      12=>"Dezember");

    $monat = date("n");

    echo $monate[$monat];
      ?>

    Das geht dann.

    MFG
    Andavos

    --
    http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
    1. Hallo

      $monat = date("n");

      Das ist aber mit einem aktuellen Datum und nicht wie von mir angegeben ($monatsauswahl = substr($zeile["datum"], 5,2);)aus einem Datum den Monat herauslesen

      oder geht das auch?

      1. Hi Andreas,

        oder geht das auch?

        wenn du dein Array entsprechend baust, d.h.
          "01" => "Januar",
          "02" => "Februar",
        ...

        dann wird das gehen.

        Gruss,
          Carsten

        1. Hi,

          habe ich

          $m_array = array(
           01 => "Januar",
           02 => "Februar",
           03 => "März",
           04 => "April",
           05 => "Mai",
           06 => "Juni",
           07 => "Juli",
           08 => "August",
           09 => "September",
           10 => "Oktober",
           11 => "November",
           12 => "Dezember");

          $monatsauswahl = substr($zeile["datum"], 5,2);

          $m_array[$monatsauswahl]

          geht nicht

          1. Hi,

            $m_array = array(
            01 => "Januar",

            Der Vorschlag war auch ein anderer, nämlich

            "01" => "Januar",
            ^  ^
            ^  ^
            usw.

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    2. $monat = date("n");

      wie ich es mir dachte, es geht nicht warum auch immer

      noch ein Tipp?

      1. Hallo,
        also bei mir geht der Script ohne Probs.
        Was steht bei dir?

        Oder wie willst du das machen?
        Ich habs so verstanden.

        Du möchtest das Aktuelle Datum mit Monats Namen anzeigen lassen.

        Dann machs doch so:

        <?php
          $monate = array(1=>"Januar",
                          2=>"Feber",
                          3=>"März",
                          4=>"April",
                          5=>"Mai",
                          6=>"Juni",
                          7=>"Juli",
                          8=>"August",
                          9=>"September",
                          10=>"Oktober",
                          11=>"November",
                          12=>"Dezember");

        $monat = date("n");

        $tage = date("d");
        $jahr = date("Y");

        echo "$tage ";
        echo $monate[$monat];
        echo " $jahr";
          ?>

        So bekommst du dann das Datum: 23 September 2003

        MFG
        Andavos

        --
        http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
        1. Hallo

          Du möchtest das Aktuelle Datum mit Monats Namen anzeigen lassen.

          Nein

          ich habe geschrieben das ich ein Datum aus der DB auslese

          und mit $monatsauswahl = substr($zeile["datum"], 5,2); mir den Monat ausgebe...

          1. Hallo,
            möglichkeit 1:
            Mit hilfe von dem Script den Monatsnamen in die DB eintragen.

            <?php
              $monate = array(1=>"Januar",
                              2=>"Feber",
                              3=>"März",
                              4=>"April",
                              5=>"Mai",
                              6=>"Juni",
                              7=>"Juli",
                              8=>"August",
                              9=>"September",
                              10=>"Oktober",
                              11=>"November",
                              12=>"Dezember");

            $monat = date("n");

            ....
            $de_eintrag = "INSERT INTO tabelle (monat...)
            VALUES ('$monate[$monat]'....)";
             $eintragen = mysql_query($de_eintrag);

            ?>

            Dann ist der Name bereits in der Tabelle

            Oder du musst eine extra Spalte in der DB anlegen, wo dann die Nummer vom Monat ist.
            Die Spalte liest du aus und mit Hilfe von dem Script gibts du dir den Monatsnamen aus.

            Eine andere Möglichkeit kenn ich nicht

            MFG
            Andavos

            --
            http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  2. Hallo,

    Datumformat JJJJ-MM-TT (2003-06-01) in der Datenbank.
    Ich möchte das der Monat "06" als Monat "Juni" ausgegeben wird.

    Also Array:
    $m_array = array('Dezember','Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November');

    Ist Dezember bei Dir "00" (Null)?

    Besser so:
    $m_array = array(1=>'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');

    //nur den Monat auslesen
    $monatsauswahl = substr($zeile["datum"], 5,2);
    //echo $monatsauswahl gibt 06 aus

    Eben ein String.
    Musst Du vielleicht in eine Zahl umwandeln:
    $monatzahl=intval($monatsauswahl);

    »» echo $m_array[$monatsauswahl];

    jetzt erhalte ich gar nichts

    wo ist mein Fehler

    $m_array["06"] ist nicht definiert.
    $m_array[6] dagegen schon.

    Mit $m_array[$monatzahl] sollte es funktionieren.

    ---

    Du kaemst eventuell auch so zum Ziel (sauberer Weg, ohne das Rad neu zu erfinden):

    Lass Dir das Datum schon von MySQL im Unix-Timestamp-Format zurueckgeben.
    SELECT UNIX_TIMESTAMP(spaltenname) FROM Tabelle WHERE ...
    Befehl UNIX_TIMESTAMP, siehe
    http://www.mysql.com/doc/en/Date_and_time_functions.html

    Diesen Wert legst Du in PHP z.B. in der Variable $unixtimestamp ab.

    Dann sagst Du PHP mit
    setlocale(LC_TIME, 'de_DE', 'de', 'ge');
    http://www.php.net/manual/de/function.setlocale.php
    dass Datumsausgabe auf Deutsch erfolgen soll

    Dann kriegst Du mit
    strftime("%B",$unixtimestamp)
    http://www.php.net/manual/de/function.strftime.php
    den Monatsnamen.

    Dieser zweite Weg hat den grossen Vorteil, dass Du z.B. bei einer Uebersetzung
    keinen neuen Array mit den Monatsnamen erstellen musst, sondern Du kannst dafuer
    einfach auf PHP zurueckgreifen, indem Du bei setlocale() das andere
    Sprach-/Laenderschema einstellst.

    Du musst allerdings ausprobieren, ob es bei Deinem Provider mit Deiner PHP-Version
    funktioniert.

    HTH, Gruesse,

    Thomas

    1. Hi Thomas,

      Du musst allerdings ausprobieren, ob es bei Deinem Provider mit Deiner PHP-Version
      funktioniert.

      Das ist das leidige Problem, weswegen ich die Array Lösung auch schon mal gemacht habe. Das setlocale() war eine langwierige Rumfummelei mit schlecht dokumentierten Konstanten die auf jedem System andere Ergebnisse brachte, davon wenig zufriedenstellende. Hab ich unter 'dann eben nicht' abgehakt obwohl es ja eigentlich die 'richtige' Lösung wäre.

      Gruss,
        Carsten