{"id":253,"date":"2023-10-02T11:45:23","date_gmt":"2023-10-02T09:45:23","guid":{"rendered":"https:\/\/gdm.sosthe.sk\/?page_id=253"},"modified":"2023-10-02T11:45:23","modified_gmt":"2023-10-02T09:45:23","slug":"cvicenie-c-8-praca-s-datumom-a-casom","status":"publish","type":"page","link":"https:\/\/gdm.sosthe.sk\/?page_id=253","title":{"rendered":"Cvi\u010denie \u010d.8 &#8211; Pr\u00e1ca s d\u00e1tumom a \u010dasom"},"content":{"rendered":"<h3>T\u00e9ma:\u00a0Pr\u00e1ca s\u00a0d\u00e1tumom a\u00a0\u010dasom v PHP<\/h3>\n<h3>\u00daloha:\u00a0Vytvorte webov\u00fa str\u00e1nku s n\u00e1zvom\u00a0<em>time.php<\/em>, ktor\u00e1 bude obsahova\u0165 PHP skript pomocou ktor\u00e9ho sa na str\u00e1nke zobraz\u00ed aktu\u00e1lny \u010das, n\u00e1zov d\u0148a v t\u00fd\u017edni a aktu\u00e1lny d\u00e1tum v slovenskom z\u00e1pise.<\/h3>\n<h3>Podmienky:\u00a0Vytvoren\u00fd dokument umiestnite na svoj blog v\u00a0polo\u017eke PHP ako \u201eZadanie \u010d.8 D\u00e1tum a \u010das\u201c s\u00a0pln\u00fdm znen\u00edm \u00falohy a\u00a0odkazom na s\u00fabor\u00a0<em>time.php<\/em><\/h3>\n<h3><strong>Te\u00f3ria :<\/strong><\/h3>\n<h4>D\u00e1tum a \u010das v PHP<\/h4>\n<p>Z\u00e1kladn\u00fd form\u00e1t d\u00e1tumu a \u010dasu v PHP je \u010d\u00edslo, ktor\u00e9 ud\u00e1va po\u010det sek\u00fand uplynul\u00fdch od 1. janu\u00e1ra 1970. Aktu\u00e1lnu hodnotu z\u00edskame volan\u00edm funkcie\u00a0Time (). T\u00e1to funkcia nem\u00e1 \u017eiadne parametre, preto s\u00fa z\u00e1tvorky pr\u00e1zdne. Hoci \u010das v tomto form\u00e1te asi nebudeme ukazova\u0165 be\u017en\u00e9mu n\u00e1v\u0161tevn\u00edkovi, m\u00e1 jednu ve\u013ek\u00fa v\u00fdhodu \u2013 dobre sa s n\u00edm po\u010d\u00edtaj\u00fa napr. \u010dasov\u00e9 rozdiely medzi dvoma okamihmi at\u010f.<\/p>\n<p>Hoci pre program\u00e1tora je vy\u0161\u0161ie uveden\u00fd form\u00e1t ve\u013emi pr\u00edjemn\u00fd, predt\u00fdm, ne\u017e ho naserv\u00edrujeme n\u00e1\u0161mu n\u00e1v\u0161tevn\u00edkovi, mus\u00edme ho upravi\u0165 do be\u017en\u00e9ho tvaru (dni, mesiace, roky, hodiny, min\u00faty, sekundy, de\u0148 v t\u00fd\u017edni at\u010f). K tomu v PHP sl\u00fa\u017ei ve\u013emi univerz\u00e1lna funkcia Date. M\u00e1 dva parametre \u2013 re\u0165azec ud\u00e1vaj\u00faci po\u017eadovan\u00fd form\u00e1t v\u00fdstupu a cel\u00e9 \u010d\u00edslo ud\u00e1vaj\u00face \u010das v \u201e\u0161karedom\u201c tvare, t.j. ako po\u010det sek\u00fand od 1. 1. 1970. Ak druh\u00fd parameter vynech\u00e1me, pou\u017eije sa aktu\u00e1lny \u010das, v\u00fdsledok je teda rovnak\u00fd, ako keby sme na miesto druh\u00e9ho parametra nap\u00edsali\u00a0Time (). Aktu\u00e1lny \u010das m\u00f4\u017eeme za pou\u017eitia funkcie Date vyp\u00edsa\u0165 napr\u00edklad takto:<\/p>\n<pre>echo Date(\"H: i: s\");<\/pre>\n<p>Vy\u0161\u0161ie uveden\u00fd pr\u00edkaz vyp\u00ed\u0161e aktu\u00e1lny \u010das v hodin\u00e1ch, min\u00fatach a sekund\u00e1ch (napr. 21:45:03). Form\u00e1tovac\u00ed re\u0165azec sa sklad\u00e1 zo znakov, ktor\u00e9 zastupuj\u00fa napr\u00edklad po\u010det hod\u00edn, min\u00fat, sek\u00fand (v na\u0161ej uk\u00e1\u017eke H, i, s), a z ostatn\u00fdch znakov (v na\u0161ej uk\u00e1\u017eke dvojbodky, \u010falej sa n\u00e1m bud\u00fa hodi\u0165 napr. medzery alebo \u010diarky), ktor\u00e9 sa v nezmenenej podobe objavia vo v\u00fdstupe. Tu je zoznam \u0161peci\u00e1lnych znakov, ktor\u00e9 vo form\u00e1tovacom re\u0165azci m\u00f4\u017eeme pou\u017ei\u0165:<\/p>\n<p><em>y \u2026 rok ako dvoj\u010d\u00edslie (00)<br \/>\nY \u2026 rok ako \u0161tvor\u010d\u00edslie (2000)<br \/>\nL \u2026 0 (nepriestupn\u00fd rok) alebo 1 (priestupn\u00fd rok)<br \/>\nz \u2026 \u010d\u00edslo d\u0148a v roku (001-365)<br \/>\nm \u2026 \u010d\u00edslo mesiaca (01-12)<br \/>\nn \u2026 \u010d\u00edslo mesiaca (bez po\u010diato\u010dnej nuly, 1-12)<br \/>\nM \u2026 anglick\u00e1 skratka n\u00e1zvu mesiaca (Jul)<br \/>\nF \u2026 anglick\u00fd n\u00e1zov mesiaca (July)<br \/>\nd \u2026 \u010d\u00edslo d\u0148a v mesiaci (01-31)<br \/>\nj \u2026 \u010d\u00edslo d\u0148a v mesiaci (bez po\u010diato\u010dnej nuly, 1-31)<br \/>\nt \u2026 po\u010det dn\u00ed v danom mesiaci (28-31)<br \/>\nS \u2026 anglick\u00e1 koncovka \u010d\u00edsla d\u0148a v mesiaci (st, nd, rd, th)<br \/>\nD \u2026 anglick\u00e1 skratka n\u00e1zvu d\u0148a v t\u00fd\u017edni (Mon)<br \/>\nl \u2026 anglick\u00fd n\u00e1zov d\u0148a v t\u00fd\u017edni (Monday)<br \/>\nw \u2026 \u010d\u00edslo d\u0148a v t\u00fd\u017edni (0-6 alebo 1-7 v z\u00e1vislosti na verzii PHP \u2013 nede\u013ea m\u00e1 \u010d\u00edslo 0 alebo 7)<br \/>\nh \u2026 hodiny (01-12)<br \/>\ng \u2026 hodiny (bez po\u010diato\u010dnej nuly, 1-12)<br \/>\nH \u2026 hodiny (01-23)<br \/>\nG \u2026 hodiny (bez po\u010diato\u010dnej nuly, 1-23)<br \/>\na \u2026 am \/ pm (dopoludnia \/ popoludn\u00ed)<br \/>\nA \u2026 AM \/ PM (dopoludnia \/ popoludn\u00ed)<br \/>\ni \u2026 min\u00faty (00-59)<br \/>\ns \u2026 sekundy (00-59)<br \/>\nU \u2026 po\u010det sek\u00fand od 1. janu\u00e1ra 1970<\/em><\/p>\n<p>Niektor\u00e9 znaky nemusia fungova\u0165 v star\u0161\u00edch verzi\u00e1ch PHP. Vysk\u00fa\u0161ajte si nasleduj\u00faci skript, kde s\u00fa funkcie Time a Date prakticky demon\u0161trovan\u00e9:<\/p>\n<pre>&lt;html&gt;\r\n  &lt;head&gt;\r\n  &lt;meta http-equiv=\"Content-Type\" content=\"text\/html; charset=\"UTF-8\"&gt;\r\n  &lt;title&gt; PHP - uk\u00e1\u017eka &lt;\/title&gt;\r\n  &lt;\/head&gt;\r\n  &lt;body&gt; &lt;bgcolor=\"#FFFFFF\" text=\"#000000\"&gt;\r\n  &lt;center&gt; &lt;font face=\"Arial CE, Arial\" size=\"5\"&gt;\r\n  &lt;?php\r\n  $Mesiace = array(\"janu\u00e1ra\", \"febru\u00e1ra\", \"marca\", \"apr\u00edla\", \"m\u00e1ja\", \"j\u00fana\", \"j\u00fala\", \"augusta\", \"septembra\", \"okt\u00f3bra\", \"novembra\", \"decembra\");\r\n  echo \"\u010cas ako po\u010det sek\u00fand od 1. 1. 1970:\". Time(). \"&lt;br&gt;\";\r\n  echo \"D\u00e1tum a \u010das:\". Date(\"d. n. Y, H: i: s\"). \"&lt;br&gt;\";\r\n  echo \"D\u00e1tum a \u010das pre pokro\u010dil\u00fdch:\". Date(\"j\"). \".\". $Mesiace[Date(\"n\") - 1]. \"\". Date(\" Y\"). \",\". Date(\" H: i: s\"). \"&lt;br&gt;\";\r\n  ?&gt;\r\n  &lt;\/font&gt; &lt;\/ center&gt;\r\n  &lt;\/body&gt;\r\n  &lt;\/html&gt;<\/pre>\n<p>V\u0161etko by u\u017e malo by\u0165 jasn\u00e9, vygenerovanie n\u00e1zvu \u010desk\u00e9ho mesiaca vr\u00e1tane pr\u00edslu\u0161n\u00e9ho p\u00e1du je zaisten\u00e9 po\u013eom $Mesiace naplnen\u00fdm pr\u00edslu\u0161n\u00fdmi n\u00e1zvami.<\/p>\n<p>Ob\u010das budeme st\u00e1\u0165 pred opa\u010dn\u00fdm probl\u00e9mom, ako rie\u0161i funkcia Date \u2013 budeme potrebova\u0165 previes\u0165 d\u00e1tum v \u201etradi\u010dnom\u201c form\u00e1te (tj roky, mesiace, dni, hodiny, min\u00faty, sekundy) previes\u0165 na po\u010det sek\u00fand od 1. 1. 1970, s ktor\u00fdm budeme \u010falej pracova\u0165. K tomu sa hod\u00ed funkcia MkTime. T\u00e1 m\u00e1 po s\u00e9rii t\u00fdchto \u0161es\u0165 \u010d\u00edseln\u00fdch parametrov \u2013 hodiny, min\u00faty, sekundy, mesiace, dni, roky. Parametre mo\u017eno od konca vynech\u00e1va\u0165, dopln\u00ed sa na z\u00e1klade aktu\u00e1lneho \u010dasu. Volanie\u00a0MkTime ()\u00a0m\u00e1 teda rovnak\u00fd efekt ako\u00a0Time (). Mal\u00fd pr\u00edklad \u2013 nasleduj\u00face pou\u017eitie funkci\u00ed Date a MkTime m\u00e1 za n\u00e1sledok vyp\u00edsanie 1. 7. 2000, 12:30:00:<\/p>\n<pre>echo Date(\"d n Y, H: i: s\", MkTime(12, 30, 0, 7, 1, 2000));<\/pre>\n<p>Funkcia MkTime si porad\u00ed i s nekorektne zadan\u00fdmi hodnotami a \u201eprete\u010die\u201c ich do vy\u0161\u0161ieho r\u00e1du (tj 30. febru\u00e1ra v nepriestupnom ruke interpretuje ako 2. marca apod).<\/p>\n<p><em>Zhrnutie alebo \u010do si treba pam\u00e4ta\u0165<\/em><\/p>\n<ul>\n<li>V PHP je \u010das vyjadren\u00fd ako po\u010det sek\u00fand od 1. janu\u00e1ra 1970. Aktu\u00e1lnu hodnotu \u010dasu v tomto form\u00e1te vracia funkcia\u00a0Time ().<\/li>\n<li>K prevodu \u010dasu vyjadren\u00e9ho v sekund\u00e1ch na tvar zrozumite\u013en\u00fd be\u017en\u00e9mu u\u017e\u00edvate\u013eovi sl\u00fa\u017ei funkcia Date.<\/li>\n<li>Naopak k prevodu be\u017en\u00e9ho form\u00e1tu na sekundov\u00fd sa hod\u00ed funkcia MkTime.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>Postup pri pr\u00e1ci :\u00a0<\/strong>Upravte vzorov\u00fd skript tak, aby sp\u013a\u0148al podmienky \u00falohy<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e9ma:\u00a0Pr\u00e1ca s\u00a0d\u00e1tumom a\u00a0\u010dasom v PHP \u00daloha:\u00a0Vytvorte webov\u00fa str\u00e1nku s n\u00e1zvom\u00a0time.php, ktor\u00e1 bude obsahova\u0165 PHP skript pomocou ktor\u00e9ho sa na str\u00e1nke zobraz\u00ed aktu\u00e1lny \u010das, n\u00e1zov d\u0148a v t\u00fd\u017edni a aktu\u00e1lny d\u00e1tum v slovenskom z\u00e1pise. Podmienky:\u00a0Vytvoren\u00fd dokument umiestnite na svoj blog v\u00a0polo\u017eke PHP ako \u201eZadanie \u010d.8 D\u00e1tum a \u010das\u201c s\u00a0pln\u00fdm znen\u00edm \u00falohy a\u00a0odkazom na s\u00fabor\u00a0time.php Te\u00f3ria : [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-253","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=253"}],"version-history":[{"count":1,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/253\/revisions"}],"predecessor-version":[{"id":254,"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=\/wp\/v2\/pages\/253\/revisions\/254"}],"wp:attachment":[{"href":"https:\/\/gdm.sosthe.sk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}