shredder01
Mitglied
Hallo,
ich hab mir eine Funktion gebastelt, die ein Datum, welches normalerweise aus 'ner Datenbank kommt, in sowas wie 01.September 2007umwandeln soll ... also richtige Reihenfolge und deutsche Bezeichnung des Monats. Tja und lustigerweise klappt das ausgerechnet bei den Monaten August und September nicht. Was völlig irrsinnig ist. Ich kann zumindest nicht sehen, was bei den beiden Monaten im switch anders wäre.
Vielleicht sehen ja eure Adleraugen etwas, was mir in meiner Betriebsblindheit entgangen ist.
Das lustige ist ja, das ich die Funktion schon seit Monaten verwende und wenn nicht zufälligerweise jetzt auf der Webseite eine Anzeige des Monats September im Zusammenhang mit einem Artikel fällig gewesen wär, hätte ich's wahrscheinlich überhaupt noch nicht gemerkt. Das heißt wohl, dass meine Tests sorgfältiger werden müssen?! ;o)
Das Skript ist nur eine Testversion, da beim Original noch 'ne Menge anderes drumherum steht. Der Fehler ist aber eindeutig innerhalb der Bestandteile dieses Testskriptes zu suchen.
Wie die Ausgabe des Monats als Zahl vor dem Switch zeigt, kommen alle Monate bis zum Switch, aber dieser ignoriert die Monate 08 und 09.
Eine Ausgabe dieses Testskriptes sieht zur Zeit so aus :
Vielen Dank schonmal!
ich hab mir eine Funktion gebastelt, die ein Datum, welches normalerweise aus 'ner Datenbank kommt, in sowas wie 01.September 2007umwandeln soll ... also richtige Reihenfolge und deutsche Bezeichnung des Monats. Tja und lustigerweise klappt das ausgerechnet bei den Monaten August und September nicht. Was völlig irrsinnig ist. Ich kann zumindest nicht sehen, was bei den beiden Monaten im switch anders wäre.
Vielleicht sehen ja eure Adleraugen etwas, was mir in meiner Betriebsblindheit entgangen ist.
PHP:
<?php
$datum = array("2007-01-01", "2007-02-01", "2007-03-01", "2007-04-01", "2007-05-01", "2007-06-01", "2007-07-01", "2007-08-01", "2007-09-01", "2007-10-01", "2007-11-01", "2007-12-01");
function month_as_word($datum){
list($jahr, $monat, $tag) = explode("-", $datum);
echo 'monat = '.$monat.' ';
switch($monat){
case 01 : $monat = "Januar";
break;
case 02 : $monat = "Februar";
break;
case 03 : $monat = "März";
break;
case 04 : $monat = "April";
break;
case 05 : $monat = "Mai";
break;
case 06 : $monat = "Juni";
break;
case 07 : $monat = "Juli";
break;
case 08 : $monat = "August";
break;
case 09 : $monat = "September";
break;
case 10 : $monat = "Oktober";
break;
case 11 : $monat = "November";
break;
case 12 : $monat = "Dezember";
break;
default : $monat = "Fehler";
}
return sprintf("%02d.%s %04d", $tag, $monat, $jahr);
}
foreach($datum as $date){
echo month_as_word($date).'<br>';
}
?>
Das Skript ist nur eine Testversion, da beim Original noch 'ne Menge anderes drumherum steht. Der Fehler ist aber eindeutig innerhalb der Bestandteile dieses Testskriptes zu suchen.
Wie die Ausgabe des Monats als Zahl vor dem Switch zeigt, kommen alle Monate bis zum Switch, aber dieser ignoriert die Monate 08 und 09.
Eine Ausgabe dieses Testskriptes sieht zur Zeit so aus :
monat = 01 01.Januar 2007
monat = 02 01.Februar 2007
monat = 03 01.März 2007
monat = 04 01.April 2007
monat = 05 01.Mai 2007
monat = 06 01.Juni 2007
monat = 07 01.Juli 2007
monat = 08 01.Fehler 2007
monat = 09 01.Fehler 2007
monat = 10 01.Oktober 2007
monat = 11 01.November 2007
monat = 12 01.Dezember 2007
Vielen Dank schonmal!