Autor Zpráva
Misha
Profil *
V proměnné $datum mám datum ve formátu 2007-02-14 a potřebuji to převést na 14.2.2007. Poradí mi někdo prosím?
25k
Profil *
echo preg_replace("~(d{4})-(d{2})-(d{2})~", "\3.\2.\1", $datum);
25k
Profil *
ty lomitka musi byt dvojite v tom druhem vyrazu nejak se to tady neprevedlo...
ronnie
Profil
A nebo


$prevod = new DateTime($datum);
$datum = $prevod->format('d.m.Y');
Misha
Profil *
25k: tohle mi neprovedlo žádnou změnu... datum se mi vypisuje stejně jako předtím. Ikdyž dám dvoje lomítka.
Misha
Profil *
ronnie
A ten tvůj příkaz mi vyhazuje tuto chybu:
Fatal error: Class 'DateTime' not found in
koudi
Profil
A ten tvůj příkaz mi vyhazuje tuto chybu:
V tom případě zřejmě nemáš PHP5.
k
Profil *
ronnie
:) taky dobrej zpusob

Mozna by to chtelo pridat i tu metodu kterou volas.

Misha
bud je ronnie lama nebo si z tebe dela srandu.
k
Profil *
nebo viz koudi
Misha
Profil *
Web je na serveru pipni.cz a ti mají Php 5.1.6
Pete
Profil *
A co takhle ?
$p = explode('-' , $datum);
$date_new = $p[2] . '.' . $p[1] . '.' . $p[0];
Anebo si to v date_new poskladas jak chces

Pete
ronnie
Profil
Třída DateFormat je v PHP od v5.1, měla by fungovat standarně (vyzkoušeno).
Misha
Profil *
Pete
Tohle pomohlo, děkuji... sice jsem to timhle zpusobem řešit nechtěl, ale když PHP asi nemá žádný příkaz na převod datumu na jiný formát, tak asi nic jiného nezbývá.
Misha
Profil *
ronnie
V tom případě nechápu proč mi to vyhazuje tu chybu.
Misha
Profil *
Pete
Ovšem, když je v promenné $datum i čas (2007-02-14 12:54:46) tak tohle použít nelze.
k
Profil *
Misha
jde o to ze v promenne $datum bys mela spis mit timestamp
pokud pouzivas MySQL databazi tak to tahej takhle:
select UNIX_TIMESTAMP(datum) as datum from ...

a pak pomoci mktime() si to prevedes do jakehokoli formatu.
25k
Profil *
k > z DB to muze formatovat rovnou pres DATE_FORMAT ne? Od toho ta fce je ...
a ten preg_replace taky funguje, kdyby tohle forum neschovalo ono 1 zpetne lomitko ...
k
Profil *
25k
Jasne nerikam ze to nefunguje.
25k
Profil *
dyt v poho ... jsme oba Kcko :)
HonzaH2
Profil
Ovšem, když je v promenné $datum i čas (2007-02-14 12:54:46) tak tohle použít nelze.

Tak to udělej takhle, to bude fungovat ať tam je čas nebo neni:

$newdatum = substr($datum,8,2) . "." . substr($datum,5,2) . "." . substr($datum,0,4);
25k
Profil *
misha> 25k: tohle mi neprovedlo žádnou změnu... datum se mi vypisuje stejně jako předtím. Ikdyž dám dvoje lomítka.

http://www.pesonline.info/test.php
DJXjozin
Profil *
Měl bych ještě jedno řešení:

<?php
$datum="1-2-2007";
$m=Array("-"=>".");
$datum=Strtr($datum, $m);
echo $datum;
?>

Ikdyž by se to dalo napsat ještě hodně dalšíma způsobama tohle mě tak skočilo do hlavy
Toto téma je uzamčeno. Odpověď nelze zaslat.