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:

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 getMonth() zwraca styczeń jako 0, luty jako 1 itd.
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.