Problém s funkcí Date()

Ctěl jsem se zeptat. Jde nějak udělat, aby fce Date() nevypisovala datum např.: 18.10.2003, ale 18.října 2003 ? To datum tahám z databáze, kam si ho insertuju ve formátu $datum = Date("j"."m"."Y");

Vím, že možností je hodně, zkoušel jsem třeba:

for ( $i = 1; $i <= 31; $i++ ) :
if ( $puvodni_datum == "$i.10.2003") :
$novy_datum = "$i. října 2003";
endif;
endfor;

.. a takhle bych mohl psát do nekonečna všech 12 měsíců a hlavně co potom s rokama, který se budou zvětšovat ?

Díky moc, Petr
$mesice = Array ("", "ledna", "unora", "brezna"... );

$m = (int) date ("m");

Print date ("j.") . $mesice [$m] . date (" Y");
Udělej si z toho funkci:

function Format2CzDate($date)
{
  $cz_months = Array(1=>'ledna', 'února', 'března', 'dubna', 'května', 'června', 'července', 'srpna', 'září', 'října', 'listopadu', 'prosince');

  $date = Explode('.', $date);

  return $date[0].'. '.$cz_months[$date[1]].' '.$date[2];
}

echo Format2CzDate('22.1.2003');