JavaScript 12.díl, čas

Napsal O webu (») 22. 11. 2006 v kategorii Programování, přečteno: 3665×

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
Štítky: JavaScript
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedenáct a třináct