Thomas Luethi: Monat 06 als Juni anzeigen

Beitrag lesen

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