Data i czas
Aby odczytać datę i czas na komputerze użytkownika i wykorzystać to w dokumencie HTML, musimy najpierw utworzyć obiekt zwany Date. Obiekt ten tworzymy w następujący sposób:
var zmienna = new Date();
Teraz w zmiennej zmienna mamy już wszystkie informacje dotyczące aktualnej daty i czasu
na komputerze użytkownika i możemy je wykorzystać w dalszej części kodu.
Aby odczytać poszczególne składniki daty i czasu możemy wykorzystać metody obiektu Date.
Najczęściej wykorzystywane metody to:
- getFullYear() - odczyt roku
- getMonth() - numer miesiąca
- getDate() - numer dnia w miesiącu
- getHours() - odczyt godziny
- getMinutes() - odczyt minut
- getSeconds() - odczyt sekund
Przykład:
teraz = new Date() dzien=teraz.getDate() + "." mies=(teraz.getMonth()+1) + "." rok=teraz.getFullYear() + "r" g=teraz.getHours() + ":" m=teraz.getMinutes() + ":" s=teraz.getSeconds() var str="Dzisiaj jest " + dzien + mies + rok + " godz." + g + m + s alert(str)
Do numeru miesiąca trzeba dodać jeden, ponieważ metoda
Aby zobaczyć jak działa powyższy skrypt kliknij tutaj.
Więcej wiadomości na temat posługiwania się obiektami daty i czasu poznasz
czytając rozdział Obiekt Date.
Definiowanie funkcji
Wyobraź sobie, że piszesz taki dokument HTML, na którym musisz wiele razy i w wielu miejscach umieścić
aktualną datę lub czas. W takim razie, musiałbyś wielokrotnie, w wielu miejscach dokumentu powtarzać ten sam kod.
Byłoby to bardzo niewygodne, a poza tym niepotrzebnie zwiększałoby objętość takiego dokumentu.
Na szczęście, we wszystkich językach programowania, istnieje coś takiego jak funkcja.
A cóż to jest ta funkcja?
Funkcja jest to pewien zwarty blok, zawierający dowolną ilość instrukcji. Wywołanie funkcji poprzez napisanie jej nazwy,
powoduje wykonanie instrukcji w niej zawartych w miejscu, w którym została wywołana.
Funkcję tworzymy za pomocą słowa kluczowego function:
function nazwa_funkcji(lista argumentów){
...
instrukcje
...
}
Do funkcji możemy przekazać dowolną ilość argumentów odzielonych przecinkami (może też nie być ani jednego).
Poprzez użycie słowa kluczowego return funkcja może zwrócić wartość (wynik).Wszystkie zmienne zadeklarowane wewnątrz funkcji (za pomocą słowa kluczowego var) są zmiennymi lokalnymi tzn. zmienne te "widoczne" są tylko wewnątrz tej funkcji. Zmienne deklarowane poza funkcjami są to zmienne globalne, które "widoczne" są poza funkcjami, jak również wewnątrz każdej funkcji.
Przykład prostej funkcji:
function RokPrzestepny(rok){
var test = rok % 4
/* znak % to operator reszty z dzielenia
jeżeli zmienna rok podzieli się całkowicie
przez 4 to zmienna test będzie równa 0 */
if(test==0)
return true
else
return false
}
Funkcja sprawdza czy rok podany jej jako argument jest rokiem przestępnym. Jeżeli jest, to
funkcja zwraca wartość true, jeśli nie jest to wynikiem jest false.
Funkcję można wywołać w następujący sposób:
teraz = new Date();
aktualny_rok = teraz.getFullYear();
if(RokPrzestepny(aktualny_rok))
alert("Mamy rok przestępny")
else
alert("Aktualny rok nie jest przestępny")
Tak nawiasem mówiąc funkcja jest trochę uproszczona - w 2400 roku nastąpi pomyłka, ale to chyba nas już nie dotyczy.
Inny przykład prostej funkcji:
function Podziel(a,b){
if(b==0) return "Nie dziel przez zero"
/* jeżeli b równa się 0 to funkcja w tym miejscu
przerywa działanie i zwraca powyższy łańcuch znaków. */
return a/b
}
Działanie powyższej funkcji różni się od zwykłego dzielenia tym, że w przypadku próby dzielenia przez zero, funkcja zwraca łańcuch znakowy zamiast wyniku liczbowego.
Powróćmy do problemu przytoczonego na początku rozdziału - wielokrotne wypisywanie tej samej rzeczy w różnych miejscach dokumentu.
Stwórzmy sobie funkcję, która będzie zwracała aktualną datę i umieśćmy ją w sekcji <head> dokumentu (bo to jest właściwe miejsce dla definicji funkcji).
<head>
<script type="text/javascript">
function aktualnaData(){
var teraz = new Date()
var dzien=teraz.getDate() + "."
var mies=(teraz.getMonth()+1) + "."
var rok=teraz.getFullYear() + "r"
return (dzien + mies + rok)
}
</script>
</head>
A teraz w sekcji <BODY>
<body> <p> W dokumencie piszemy jakiś kod HTML piszemy piszemy piszemy i nagle potrzebujemy napisać datę, więc piszemy ją <script type="text/javascript"> document.write(aktualnaData()) </script> </p> <p> I znowu piszemy jakiś kod piszemy piszemy piszemy i znowu potrzebujemy napisać datę, więc piszemy ją <script type="text/javascript"> document.write(aktualnaData()) </script> </p> </body>
Zobacz też rozdział Funkcje.