Objekt Date

Datum a čas je v Javascriptu reprezentován objektem Date.

Vytvoření aktuálního data

Než se s datem začne pracovat, musí se vytvořit a přiřadit proměnné. Dělá se to příkazem new:

<script>
promenna = new Date(); // vytvoří proměnnou obsahující aktuální datum
mesic = promenna.getMonth() + 1;//leden je 0
denVMesici = promenna.getDate();
document.write("Dnes je " + denVMesici + ". " + mesic + ".");
</script>

Pokud se new Date() zavolá bez parametrů, ukazuje aktuální datum a čas nastavený na klientovi (takže nemusí být přesný). Takhle vypadá výstup skriptu příkladu:

Může vás zajímat složitější příklad vypisující celé datum.

Zjištění částí data

Datum je v proměnné uloženo jako počet milisekund od 1.1. 1970, navenek se ale chová jako řetězec. Z toho umějí metody objektu Date zjišťovat různé věci. Jsou to metody začítající get*.

metoda návratová hodnota poznámka
getYear() rok dvěma číslicemi ve dvacátém století vracel dvě číslice. V roce např. 2004 IE vrací 2004 a ostatní prohlížeče 104. Prakticky nepoužitelné, doporučuji nahradit metodou getFullYear().
getFullYear() rok totéž jako getYear, ale vždy 4 číslice
getMonth() měsíc leden je nula, takže to chce přičítat 1
getDate() číslo dne v měsíci 1 je prvního (překvapivě)
getDay() číslo dne v týdnu neděle je nula
getHours() počet hodin od půlnoci 0 je půlnoc a hodina po ní
getMinutes() počet minut od začátku hodiny 0 je první minuta, 59 poslední
getSeconds() počet sekund od začátku minuty  
getMilliseconds() počet milisekund od začátku sekundy  
getTime() počet milisekund od 1. 1. 1970  

Textové metody

Datum může být zobrazeno jako řetězec metodami toString() a toGMTString(). Obě vracejí datum jako textový řetězec. Metoda toString() ve formátu UTC, toGMTString() ve formátu GMT.

Změna data

Datum se mění několika metodami, které začínají set* (odpovídají metodám get*). Např. skript

promenna = newDate()
promenna.setFullYear(2001)

změní v proměnné datum na aktuální den a čas, ale v roce 2001.

metoda měněná hodnota poznámka
setYear() rok doporučuji nepoužívat
setFullYear() rok  
setMonth() měsíc leden je nula, takže to chce odčítat 1
setDate() číslo dne v měsíci  
setDay() číslo dne v týdnu neděle je nula
setHours() počet hodin od půlnoci 0 je půlnoc a hodina po ní
setMinutes() počet minut od začátku hodiny 0 je první minuta, 59 poslední
setSeconds() počet sekund od začátku minuty  
setMilliseconds() počet milisekund od začátku sekundy  
setTime() počet milisekund od 1. 1. 1970 nejpoužívanější metoda

Univerzální je setTime()

Pohodlný způsob práce s datem poskytuje metoda setTime. Vystačíte si s ní. Příklad:

<script>
promenna=new Date();
promenna.setTime(promenna.getTime() + 2 *24*60*60*1000)
mesic = promenna.getMonth() + 1;//leden je 0
denVMesici = promenna.getDate();
document.write("Pozítří bude " + denVMesici + ". " + mesic + ".");
</script>

Prostě k aktuálnímu času se přičtou milisekundy, v tomto případě dva dny. To pak metoda setTime() nastaví jako čas. Takhle to vypadá:

Jiný příklad -- uložení cookie se jménem karkulka, která za týden (7 dní) vyprší:

<script>
datum = new Date(); // aktuální čas
datum.setTime(datum.getTime() + 7 *24*60*60*1000) ;//za týden
document.cookie = "karkulka=chcipla;expires="+ datum.toGMTString();
</script>

 

Reklama

www.webhosting-c4.cz, extra rychlý SSD webhosting s doménou v ceně
o tvorbě, údržbě a zlepšování internetových stránek

Návody HTML CSS JavaScript Články Ostatní

Základy, objekty Příklady

Jak psát web píše Yuhů, Dušan Janovský. Kontakt.