Autor Zpráva
exec
Profil *
ahoj, potreboval bych z data 4.8.2008 16:00 udelat 2008-08-04 16:00:00 v php. Jde to nejakou funkci udelat?
Predem diky
Joker
Profil
Jestli to datum máte jako datum, tak s pomocí funkce date()
exec
Profil *
to datum je ulozeno v promenne $_POST["datum"]
Joker
Profil
Tak jako řetězec se to dá trochu obejít, pokud to má pevný formát:
explodovat to mezerou (tím dostanete datum a čas), datum pak explodovat tečkou, no a nakonec to zase sestavit dohromady ve správném tvaru.

edit: ne split, ale explode
Taps
Profil
exec
a jak s tím datem dale pracuješ, jestli je datumuložené v databázi tak ho můžeš už přímo upravit v selectu dotazu
exec
Profil *
no prave ze ho chci ulozit do databaze, ale mam slouec datum v DATETIME.
Dale mam textove pole, kde uzivatel zada datum treba 4.8.2008 21:01 nebo take muze zadat 4.08.2008 21:01 popripade 04.08.2008 21:01. Potrebuju nejak zkontrolovat jestli zadane datum je platne a pak jej upravit a vlozit do databaze v tomto tvaru.
chtit po uzivateli aby zadal datum ve formatu RRRR-MM-DD HH:MM se mi nezda moc vhodne.
Medvídek
Profil
Vnut uzivateli at zada treba ve tvaru DD MM RRRR a ty už si to převedeš :)

Mam to řešený že input s datem je již předvyplněn na aktuální den ve tvaru DD.MM.RRRR a vedle je kalendář s odkazy ve taru datum.php?mesic=08099 a tím že na to kliknou se změní i input.
exec
Profil *
tak dejme tomu ze donutim uzivatele aby zadal datum ve tvaru DD.MM.RRRR. Jakym zpusobem muzu zkontrolovat jestli to zadal opravdu v tomto formatu? a jak toto muzu prevest do tvaru pro databazi?

Predem dekuji.
exec
Profil *
joo a jeste za tim datem musi byt cas, takze format DD.MM.RRRR HH:MM
exec
Profil *
tak jsem to nakonec vyresil, diky vsem co se mi snazili pomoct. Kdyby nekdo resil stejny problem, tak kod je tady:
  function KontrolaDateTime ($dateTime)
{   
    $date_format = preg_replace('~^([0-9]+)\\.([0-9]+)\\.([0-9]+)~', '\\3-\\2-\\1', $dateTime); //prevede D(D).M(M).RRRR na RRRR-M(M)-D(D)
    if (preg_match('/^(\d{4})-(\d{1,2})-(\d{1,2}) ([01][0-9]|2[0-3]):([0-5][0-9])$/', $date_format, $pole)) {
        if (checkdate($pole[2], $pole[3], $pole[1])) {
            return true;
        }
    }
    return false;
}


if (!KontrolaDateTime("1.12.1990 10:25")){
  echo "chyba";
}else{
  echo "oka";}


fce prevede z D.M.RRRR na RRRR-M-D, je vyuzito tolerance v mysql, ktera dovoli vlozit jak RRRR-M-D tak RRRR-MM-DD.Nakonec funkce zkontroluje delky retezce, vlozi je do pole a spravnost vyhodnoti funkce checkdate().
Je to uzasne forum s jeste lepsimi lidmi, diky vsem jeste jednou.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: