| PROIECTARE SITE WEB > DOCUMENTATIE - JAVASCRIPT - Obiecte
predefinite |
Proiectare Site si Web Design - JavaScript - Obiecte Predefinite
Java Script ne permite sa folosim cateva obiecte predefinite. Acestea
sunt, de exemplu, obiectele Data (Date), Matrice (Array)
sau Matematic (Math). Exista si alte obiecte - putem apela
documentatia oferita de Netscape pentru informatii complete.
Vom examina obiectul "Date"
Dupa cum sugereaza si numele, acest obiect ne permite sa lucram cu
data si ora din calculator putand cu usurinta, spre exemplu,
sa calculam cate zile au mai ramas pana la Craciunul urmator. Sau
putem adauga ora exacta documentului nostru HTML.
Sa incepem cu un exemplu care afiseaza ora exacta. Trebuie creeat
mai intai un nou obiect de tip "Date". Petru aceasta folosim
un nou operator. Sa fim putin atenti la urmatoarea linie de cod:
today=new
Date()
Aceasta creeaza un nou obiect de tip "Date"
- "today". Daca nu specificam o anumita data si ora cand
cream un nou obiect "Date", atunci data si ora existente
vor fi cele folosite. Acasta inseamna ca dupa executarea "today=new
Date()", noul obiect Date - "today" va reprezenta data
si ora din momentul prezent.
Tipul Date ofera cateva metode care pot fi folosite
cu obiectul "today"
Se pot folosi getHours(), setHours(),
getMinutes(), setMinutes(), getMonth(),
setMonth() si asa mai departe. Puteti gasi documentatia
completa asupra obiectului "Date" si asupra metodelor sale
in anexa lucrarii "Java, JavaScript - Profesional"
(oferita de site-ul nostru in cadrul pachetului de carti electronice
"Internetul Pentru Afaceri"), al carei cuprins va invitam
sa il examinati indeaproape.
Sa observam ca obiectul de tip "Date" reprezinta numai o
data sau o ora "statica". Nu este vorba de un ceas care
arata trecerea fiecarei secunde sau milisecunde automat. Pentru a
obtine o noua data si o noua ora trebuie folosita o alta constructie
(este vorba de tipul "Date" apelat printr-un nou operator
in momentul constructiei obiectului):
today=
new Date(1997, 0, 1, 17, 35, 23)
Aceasta secventa de cod va creea un obiect Date cu
proprietatile "Ianuarie 1997, ora 17:35 si 23 secunde".
Deci trebuie specificata data si ora dupa tiparul:
Date(year,
month, day, hours, minutes, seconds)
Observam ca trebuie sa folosim "0" pentru
Ianuarie - si nu "1", asa cum am fi putut presupune. "1"
este folosit pentru Februarie, 2 pentru Martie s.a.m.d.
Acum putem realiza un script care sa furnizeze data si ora actuala.
Rezultatul ar arata astfel:
Time:
21:55
Date: 12/8/3903
Codul arata astfel:
<script
language="JavaScript">
<!-- hide
now=
new Date();
document.write("Time:
" + now.getHours() + ":" + now.getMinutes() + "<br>");
document.write("Date: " + (now.getMonth() + 1) + "/"
+ now.getDate() + "/" +
(1900 + now.getYear()));
//
-->
</script>
Aici trebuie sa folosim metode ca getHours()
pentru a afisa data si ora specificate in obiectul de tip "Date".
Putem observa ca am adaugat 1900 anului. Metoda get Year()
returneaza numarul anului incepand cu 1900. Asadar, daca anul prezent
ar fi 1997 metoda va returna 97; daca anul prezent ar fi 2010 va returna
110 - nu 10! Daca adaugam 1900 scapam de problema anului 2000. Acest
script nu verifica daca numarul minutelor este mai mic dacat 10 pentru
a-l afisa corespunzator, in formatul ":0x". Aceasta inseamna
ca s-ar putea obtine ceva sub forma 14:3 care de fapt inseamna 14:03.
Vom vedea in urmatorul exemplu cum se poate rezolva aceasta problema.
Sa aruncam asadar o privire asupra unui script care afiseaza un
ceas functional:
<html>
<head>
<script
Language="JavaScript">
<!-- hide
var
timeStr, dateStr;
function
clock() {
now= new Date();
//
time
hours= now.getHours();
minutes= now.getMinutes();
seconds= now.getSeconds();
timeStr= "" + hours;
timeStr+= ((minutes < 10) ? ":0" : ":") +
minutes;
timeStr+= ((seconds < 10) ? ":0" : ":") +
seconds;
document.clock.time.value = timeStr;
//
date
date= now.getDate();
month= now.getMonth()+1;
year= now.getYear();
dateStr= "" + month;
dateStr+= ((date < 10) ? "/0" : "/") + date;
dateStr+= "/" + year;
document.clock.date.value = dateStr;
Timer=
setTimeout("clock()",1000);
}
//
-->
</script>
</head>
<body
onLoad="clock()">
<form
name="clock">
Time:
<input type="text" name="time" size="8"
value=""><br>
Date:
<input type="text" name="date" size="8"
value="">
</form>
</body>
</html>
Folosim metoda setTimeout() pentru
a stabili ora si data in fiecare secunda. Deci creem in fiecare secunda
un nou obiect de tip "Data" cu ora exacta.
Putem vedea ca functia Clock() este apelata de
un "onLoad event-handler" in tagul <body>.
In partea de continut a paginii HTML avem doua elemente de text. Functia
"clock()" scrie data si ora in aceste doua elemente in formatul
corespunzator. Putem vedea ca folosim doua siruri in acest scop: "timeStr"
si "dateStr". Am afirmat mai devreme ca exista
o problema cu minutele mai mici de 10 - acest script o rezolva cu
ajutorul urmatoarei linii de cod:
timeStr+=
((minutes < 10) ? ":0" : ":") + minutes;
Aici numarul de minute este adaugat sirului "timeStr".
Daca numarul minutelor este mai mic de 10 trebuie sa adaugam 0. Desi
codul acesta poate parea straniu, il putem scrie si in modul de mai
jos care l-ar putea face sa para mai familiar:
if
(minutes < 10) timeStr+= ":0" + minutes
else timeStr+= ":" + minutes;
|