Debugging Hilfe... bei eigener Function

Gunah

Erfahrenes Mitglied
moin

brauch mal hilfe von euch weil diese Funktion will nicht so lüppen wie ich will :(

hier die Daten:
PHP:
function monate($row) {
$monate=explode("|", 'Januar | Februar | März | April | Mai | Juni | Juli | August | September | Oktober | November | Dezember');
 for($mons = 1; $mons < count($monate)+1; $mons++) {
  if(date('n',$row)-1==$mons) return $monate[$mons];
    }
}
echo monate('2');

ausgegeben wird aber tortzdem nichts PHP Version 4.2.4 und 5.2.5

MfG Gunah
 
Hi,

der zweite Parameter für date() muss ein Timestamp sein. OK, 2 wäre ein gültiger Timestamp, aber vermutlich nicht das, was Du Dir vorgestellt hattest :)
Das wäre am 1.1.1970 gewesen. Also müsste die Funktion 1 liefern. Dann ziehst Du noch 1 ab, macht 0. Deine Schleife startet aber bei 1.

LG
 
ach verdammt hast recht... so hab jetzt getestet lüppt alles soweit, nur am 1.1.2008 wir Januar nicht ausgelesen der Rest passt soweit nur Januar will nicht
 
Zuletzt bearbeitet:
hab einen TimeStep in die Funktion gepackt ...

ne es geht generell der Januar nicht...

habe es jetzt aber mit if und elseif gemacht, also

$time=date('n',$row);
if($time=='1') return "Januar";

usw..

MfG Gunah
 
Hi,

ja, wenn Du die Schleife so gelassen hast... die geht bei 1 los. Januar hat aber den Index 0. Wofür brauchst Du überhaupt eine Schleife? Machs doch einfach so:

PHP:
if( array_key_exists(date('n',$row)-1, $monate) ) {
   return $monate[date('n',$row)-1];
} else {
   return false; // ungültiger Wert für Timestamp?
}

LG
 

Neue Beiträge

Zurück