V dnešním díle si povíme něco o čase a datumu
V tomto díle se pokusíme na stránku vložit Datum a klidně i čas, který je pouze zpřesněním datumu. Zjišťování data a času se řídí z webového prohlížeče, který získává data ze systému. Proto následujícím popisem nezjistíme přesný čas, ale pouze ten jaký má daný uživatel nastavený na vlastním počítači.Aktuální datum i čas je uložen v globálním objektu Date().
Pokud by jste chtěli pouze objekt vypsat na obrazovku:
document.write(Date());
Dostaneme nepříliš pěkný výsledek:
Wed Nov 15 2006 21:55:06 GMT+0100 (CET) // Firefox 2.0
Wed, 15 Nov 2006 21:55:06 GMT+0100 // Opera 9.0
Tento výsledek se mi takto vytiskl v mých browserech (Opera, Firefox / Linux) a není jisté, zda se vám ve vašem prohlížeči vytiskne stejný výsledek. Proto také bude lepší použít funkce, kde odděleně získáme potřebné hodnoty, které následně vytiskneme a tím zajistíme kompatibilitu.
Vytvoření objektu Date()
Objekt Date() bez parametrů uchovává aktuální čas na počítači kde byl spuštěn. Pokud budeme chtít s datumem dále pracovat budeme muset vytvořit Pokud by jsme však chtěli vytvořit a pracovat s jiným datumem (časem), musíme tento čas specifikovat do závorek. Nemůžeme tam však napsat slovy který datum chceme, ale pomocí předpisů, které nám JavaScript nabízí.Pomocí milisekund
Date(milisekundy) vytvoří objekt o zadaných milisekundách od počátku epochy. Epochou se myslí čas odkdy se začalo počítat 0 milisekund = 1.ledna 1970 00:00:00:000 (tento čas platí pro OS Linux (BSD, *nix apod) a OS Windows) u operačního systému Macintosh se jedná o 1.leden 1900 (neznám nikoho s tímto OS, pokud bych se mýlil, prosím napište to do diskuse ke článku). Pokud víte čas od epochy v sekundách nezapomeňte vynásobit tento čas 1000, kterým jej převedete na milisekundy.
Příklad 1:
document.write(new Date(0)) // vytiskne datum a čas počátku epochy: Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
document.write(new Date(1163225420000)) // Vytiskne zadaný čas: Sat Nov 11 2006 07:10:20 GMT+0100 (CET)
Pomocí časového řetězce
Formát časového řetězce je pevně stanoven. Rozpoznávání probíhá na základě metody parse, kterou si popíšeme dále.
new Date("10.listopadu 2006 03:24:00"); // Zápis který nebude fungovat, přesněji vypíše aktuální datum
new Date("November 10, 2006 03:24:00");
new Date("Aug 9, 2006");
Pomocí datumu
Datum se zapisuje ve formátu:
číslo_roku, číslo_měsíce, číslo_dne
Číselné hodnoty zde reprezentují datum. Měsíc je počítán od 0 do 11, kde platí: 0=Leden a 11=Prosinec.
Příklad:
document.write(new Date(2006,11,11)); // vypíše: Mon, 11 Dec 2006 00:00:00 GMT+0100
document.write(new Date("2006,11,11")); //vypíše: Sat, 11 Nov 2006 11:00:00 GMT+0100
V ukázce si všimněte hlavně, že pokud uvedete uvozovky, může se vám datum zpracovat, jak jste nechtěli, protože je zpracováván pomocí časového řetězce.
Pomocí času
Čas se zapisuje ve formátu:
hodina, minuta, sekunda, milisekunda
Příklad:
document.write(new Date(2006,11,17,3,24,0)); //vypíše: Sun, 17 Dec 2006 03:24:00 GMT+0100
Metody pro práci s časem
getDate()
Je metoda vracející den v měsíci
vanoce = new Date("December 24, 2006 23:15:00");
document.write(vanoce.getDate()); //vytiskne číslo 24
getDay()
Vrací den v týdnu od 0 do 6, kde 0=neděle, 6=sobota
vanoce = new Date("December 24, 2006 23:15:00");
document.write(vanoce.getDay()); //vytiskne 0 =>neděle
getFullYear()
Vrací čtyřmístný kód roku:
dnes = new Date();
document.write(dnes.getFullYear()); // vytiskne aktuální rok: 2006
getHours()
Vrací hodinu od 0 do 23
hodina = new Date();
document.write(hodina.getHours());
getMilliseconds()
Vrací milisekundy od 0 do 999. Můžete jej například zkusit použít pro generování náhodného čísla, ikdyž na to máme v JavaScriptu speciální metody.
ms = new Date();
document.write(ms.getMilliseconds());
getMinutes()
Vrací minuty od 0 do 59
min = new Date();
document.write(min.getMinutes());
V metodách pro práci s časem budeme pokračovat opět v příštím díle.
Autor: Martin