PHP

Web o webu

Funkce PHP

Datum a čas

  • date(formát [,datum-čas]) - formátuje datum a čas

    Nezadáme-li datum-čas, vrátí funkce aktuální datum a čas v zadaném formátu.

    Pomocí prvního parametru určíme formát datumu a času, resp. získáme určité údaje o datumu a času, např. den, měsíc, rok, hodiny, minuty, sekundy, ale také počet dní v měsíci, zda je rok přestupný, zda je letní čas, číslo či zkratku dne v týdnu, číslo týdne, a další. Vše najdete v php manuálu.

    den=date("j");             //den v měsíci
    mesic=date("n");           //číslo měsíce
    rok=date("Y");             //rok
    hodiny=date("G");          //hodiny
    minuty=date("i");          //minuty
    sekundy=date("s");         //sekundy
    denTydne=date("w");        //číslo dne v týdnu 0-neděle, 1-pondělí …6-sobota
    tyden=date("W");           //číslo týdne
    pocetDniMesice=date("t");  //počet dní v měsíci
    
    
    Do formátu můžeme zapsat více symbolů a doplnit je tečkami apod. a vypsat tak celé datum, případně čas:
    echo date("j.n.Y");        //23.11.2024
    echo date("G:i");          //16:08
    echo date("w");            //6 - sobota
    
    
    Chceme-li získat informace o jiném datumu, můžeme zadat druhý parametr (datum-čas) pomocí funkce strtotime nebo mktime - viz dále.
    echo date("w",strtotime("31.12.2000");    //0 - neděle
    echo date("w",mktime(0,0,0,12,31,2000);   //0 - neděle
    
  • strtotime(zápis-datumu)

    Funkce převede textový zápis datumu na číselnou hodnotu datumu, kterou lze zpracovat datumovými funkcemi. Datum musí být od roku 1900.

  • mktime(hodiny, minuty, sekundy, měsíc, den, rok)

    Funkce vytvoří datum ze zadaných čísel měsíce, dne a roku, případně i času. Údaje času jsou bohužel na začátku, nelze je tedy vynechat, musí se zadat nuly.

  • date_create_from_format(formát, datum)

    Funkce vytvoří datum z textového řetězce, který představuje datum v daném formátu.

  • getdate([datum-čas])

    Funkce vrací asociativní pole hodnot datumu a času. Není-li parametr datum-čas zadán, je brán aktuální datum a čas.

    Indexy pole jsou year, mon, mday, wday, hours, minutes, seconds a další.

    $dat=getdate();
    echo "Dnes je {$dat["mday"]}. {$dat["mon"]}. {$dat["year"]};
    echo "Aktuální čas: {$dat["hours"]}:{$dat["minutes"]}:{$dat["seconds"]}";
    
  • checkdate(měsíc, den, rok)

    Funkce ověří, zda zadané datum je platné.

    $mesic=2;
    $den=29;
    $rok=2016;
    if(checkdate($mesic,$den,$rok)){echo "Datum $den. $mesic. $rok je validní";}
    else {echo "Datum $den. $mesic. $rok není validní";}
    

Objekt DateTime

  • new DateTime()

    Vytvoří objekt datum-čas.

    $datum = new DateTime();
    echo "Dnes je {$datum->format('j.n.Y')}";
    
    
  • createFromFormat(formát, zápis datumu)

    Vytvoří objekt datum-čas ze zadaného textového řetězce obsahujícího datum, případně čas v daném formátu.

    $format="j. n. Y";
    $datumc="26. 8. 2017";
    // formát s mezerami funguje i pro $datumc="26.8.2017";
    $datumd = DateTime::createFromFormat($format,$datumc);
    echo "Datum $datumc převedeno na {$datumd->format('Y-m-d')}";
    
  • format(formát)

    Formátuje objekt datum-čas. Pomocí různých formátů lze získat jednotlivé hodnoty datumu a času.

    $datum = new DateTime();
    $rok=$datum->format('Y');
    $mesic=$datum->format('n');
    $den=$datum->format('j');
    
  • setDate(rok, měsíc, den)

    Nastavení datumu dle zadaných hodnot.

    $datum = new DateTime();
    $rok=$datum->format('Y');
    $mesic=$datum->format('n');
    $den=$datum->format('j');
    $datum->setDate($rok,$mesic,1);
    echo "Začátek měsíce {$datum->format('l j.n.Y')}";
    
  • modify(posun datumu)

    Nastavení datumu dle zadaného posunu. Např.

    $datum = new DateTime();
    echo "Dnes je {$datum->format('j.n.Y')}";
    //$datum->modify('+1 week');
    echo "Za týden bude {$datum->modify('+1 week')->format('j.n.Y')}";