Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP: převod data z 2007-08-29 na 29. srpen 2007

Zdravím,

nikde jsem tu nenašel odpověď na můj dotaz, tak zkusím nové téma...snad to tu pomůže i někomu jinému.

Pokouším se vytvořit si funkci pro převod z data 2007-08-29 na 29. srpen 2007, můj návrh:

function convert_date($date) {
// ošetření
if ( !ereg("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2 }",$date) ) return false;
else {
// získání českého měsíce
$months = array( 01 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec' );
$mesic_cislo = ereg_replace("^([[:digit:]]{4})-0?([[:digit:]]{1,2 })-0?([[:digit:]]{1,2})$","\\2",$date);
$mesic = $months[$mesic_cislo];
// převod data
$date = ereg_replace("^([[:digit:]]{4})-0?([[:digit:]]{1,2 })-0?([[:digit:]]{1,2})$","\\3. $mesic \\1",$date);
// vrácení hodnoty
return $date;
}
}

Kód "prasečina", myslím, že by to šlo nějak zjednodušit pomocí preg_replace(), bohužel ji neumím používat, zkoušel jsem něco jako níže uvedený příklad, bohužel skončil chybou:

function convert_date($date) {
// ošetření
if ( !ereg("[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2 }",$date) ) return false;
else {
// české měsíce
$months = array( 01 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec' );
// převod
$date = preg_replace("^(\d{4})\\-0?(\d{1,2})\\-0?(\d{1,2}) $","\\3. $months[\\2] \\1",$date);
// vrácení hodnoty
return $date;
}
}

Mám ve zvyku za sebou nechávat co nejlepší kód, vím, že to musí jít přes preg_replace(), neví někdo jak ?
Kde najdu více info o funkci preg_replace() v češtině ?

Díky moc za odpovědi

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny