Kada radiš sa datumima u Flash-u koristiš
Date klasu. Kada vršiš poređenje datuma, odnosno kada treba da izračunaš razliku između 2 datuma moraš da pretvoriš datum u milisekunde a zatim možeš da ih konvertuješ u dane kako bi mogao da prikažeš razliku u danima. Za početak je potrebno da napraviš instancu klase
Date:
Code:
var tekuciDatum:Date = new Date();
Kada bi prikazao vrednost promenljive
tekuciDatum dobio bi prikaz današnjeg datuma u obliku "DAN U NEDELJI - MESEC - SAT:MINUTE:SEKUNDE - GMT - GODINA" (na primer "Sat Jun 15 10:25:00 GMT+0200 2013"). Da bi konvertovao tekući datum u milisekunde koristićeš
time svojstvo:
Code:
var tekuciDatumMilisekunde:Number = tekuciDatum.time;
Sada treba da oduzmeš ovaj datum sa datumom koji je korisnik uneo u tekst polje (koje treba biti u formatu "MESEC/DAN/GODINA", na primer "6/15/2013"). Pošto je tekst koji se unese u tekstualno polje tipa
String, pre nego što budeš mogao da manipulišeš sa njim moraš prethodno da ga pretvoriš u datum korišćenjem
parse():
Code:
var unetiDatum:Number = Date.parse(inputTxt.text);
Ukoliko je datum u ispravnom formatu Flash će ga konvertovati u milisekunde, u suprotnom će se prikazati greška
NaN (što znači
Not A Number (nije broj)).
Ostalo je još da izračunaš razliku između unetog i tekućeg datuma u milisekundama:
Code:
var razlikaDatumaMilisekunde:Number = unetiDatum - tekuciDatumMilisekunde;
Na kraju treba da tu vrednost pretvoriš u dane, a to ćeš postići jednostavnim proračunom:
1 sekunda = 1000 milisekundi
1 minut = 60 sekundi
1 sat = 60 minuta
1 dan = 24 sata
Code:
var brojDana:int = razlikaDatumaMilisekunde/1000/60/60/24;
Kompletan kod izgleda ovako:
Code:
izracunajBtn.addEventListener(MouseEvent.CLICK, prikaziDatum);
function prikaziDatum(event:MouseEvent):void{
var unetiDatum:Number = Date.parse(inputTxt.text);
if(isNaN(unetiDatum)){
razlikaDatumaTxt.text = "Morate uneti datum!";
inputTxt.setFocus();
} else {
var tekuciDatum:Date = new Date();
var tekuciDatumMilisekunde:Number = tekuciDatum.time;
var razlikaDatumaMilisekunde:Number = unetiDatum - tekuciDatumMilisekunde;
var brojDana:int = razlikaDatumaMilisekunde/1000/60/60/24;
razlikaDatumaTxt.text = brojDana.toString();
}
}
Na stage-u se nalaze dva tekstualna polja, jedno je input sa nazivom instance "inputTxt" u koje će korisnik da unese datum, a drugo je dinamičko koje ima naziv instance "razlikaDatumaTxt" i u kojem će se prikazivati razlika između unetog i sadašnjeg datuma u danima. Pritiskom na taster "izracunajBtn" prikazaće se razlika u danima. Ubacio sam i proveru da li je nešto uneto u "inputTxt" i da li je u ispravnom formatu, a ako nije prikazaće se greška. Pre nego što budeš mogao datum mogao da prikažeš u tekstualnom polju moraš prvo da ga konvertuješ u string korišćenjem
toString() metode. Ovo je samo jedan mali primer na koji način možeš koristiti
Date klasu u ActionScript-u. FLA možeš preuzeti iz priloga.
Pogledajte odličnu knjigu ActionScript 3.0: Visual QuickStart Guide na Safari Books Online unošenjem kupon koda TPJVJGA:
https://ssl.safaribooksonline.com/safarienabled
Obavezno pogledati besplatan tutorijal "Installing Apache, MySQL, and PHP" na lynda.com:
http://www.lynda.com/MySQL-5-t...che-mysql-and-php/77958-2.html