Datum a čas je v Javascriptu reprezentován objektem Date.
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.
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 |
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.
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 |
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>
Jak psát web píše Yuhů, Dušan Janovský. Kontakt.