Autor Zpráva
Tomashekk
Profil
Potřeboval bych aby mi místo 2010-11-09 16:39:07 napsal třeba 9. listopadu 2010 v 16:39
Jak toto udělat?
Tomashekk
Profil
našel jsem toto, ale příjde mi to hodně složitý (to že tam je _NOVEMBER apod. to je kvůli multilang v United Nuke)
<? $time = $row['time'];
		ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $getdate);
		if ($getdate[2] == "01") { $month = _JANUARY; } elseif ($getdate[2] == "02") { $month = _FEBRUARY; } elseif ($getdate[2] == "03") {
		 $month = _MARCH; } elseif ($getdate[2] == "04") { $month = _APRIL; } elseif ($getdate[2] == "05") { $month = _MAY; } 
		 elseif ($getdate[2] == "06") { $month = _JUNE; } elseif ($getdate[2] == "07") { $month = _JULY; } elseif ($getdate[2] == "08") { 
		 $month = _AUGUST; } elseif ($getdate[2] == "09") { $month = _SEPTEMBER; } elseif ($getdate[2] == "10") { $month = _OCTOBER; }
		  elseif ($getdate[2] == "11") { $month = _NOVEMBER; } elseif ($getdate[2] == "12") { $month = _DECEMBER; }
xmark
Profil
Jestli to máš vyloženě jako string v tom tvaru, co píšeš, tak bych to pomocí explode rozdělil na datum a čas, pak pomocí dalších dvou explode rozlámal na čísla, měsíc vytáhl z pole a složil to. Nebude to suprkůl regulár, ale bude to fungovat.
Tomashekk
Profil
xmark:
checht.. jdu zkoumat manuál :D
xmark
Profil
Tomashekk:
Doufám, že tam není moc překlepů. Mohlo by tě to navést. // edit: opraven čas + středník

$inputstr = "2010-11-09 16:39:07";
list ($wdatum, $wcas) = explode (" ", $inputstr);
$ardatum = explode ("-", $wdatum);
$arcas = explode (":", $wcas);
$armesice = array( _JANUARY, _FEBRUARY ... ); // až do DEC
$outputstr = $ardatum[2].". ".$armesice[$ardatum[1]]." ".($ardatum[0]);										
$outputstr .= " ".$arcas[0].":".$arcas[1];
Tomashekk
Profil
xmark:
ten rok, jsi tam nechal schválně abych něco dělal že? :D
xmark
Profil
Tomashekk:
Aha :-) Sorry, já uvažuju dopředu, abych měl náskok před konkurencí :)
Tomashekk
Profil
xmark:
v pohodě, já se to tu snažím pochopit.. ale zatím to celkem i chápu.. :) ale díky moc..
Tomashekk
Profil
xmark:
ale počkej, teď mi došlo.. jak dopředu? spíš dozadu :D ... je tam rok 2000
xmark
Profil
měl jsem tam chybu, je moc hodin. Už je to ok.
Tomashekk
Profil
hele, ale jen jsi zapomněl na jednu věc... že
$armesice = array( _JANUARY, _FEBRUARY ... ); // až do DEC
je posunutý, je to od array[0-11] ;) ... sem to vyřešil že 0 je neustále prázdná, měsíc 0 neznám :)
Jsem to zjistil, že mi to teď psalo že je prosinec :D
Tomashekk
Profil
xmark

Děkuji moc.. tys to měl na vteřinku a já se tu s tím s**u už asi 2 hodiny
Nakonec to dopadlo takto:
<?php 
function format_data($datum) {
$inputstr = $datum;
list ($wdatum, $wcas) = explode (" ", $inputstr);
$ardatum = explode ("-", $wdatum);
$arcas = explode (":", $wcas);
$armesice = array( "", "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec" ); // až do DEC
$outputstr = $ardatum[2].". ".$armesice[$ardatum[1]]." ".($ardatum[0]);                                        
$outputstr .= " ".$arcas[0].":".$arcas[1];
echo $outputstr;
}
?>

Ještě jednou děkuji
panther
Profil
Tomashekk:
u pole ta prázdná hodnota na začátku není moc hezká, lépe si nastavit klíč = 1 k Lednu.

Lépe by bylo tohle:
$armesice = array(1 => "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec" );
Toto téma je uzamčeno. Odpověď nelze zaslat.