Személyes eszközök
Keresés

 

A InfoWiki wikiből


Tartalomjegyzék

Date típus

Gyakran van (lehet) szükség a JS kódban dátum és idő kezelése. Ezalatt nem egyszerűen dátum tárolását értjük - az megoldható lenne string formában is. Azonban ha el kell dönteni hogy egy dátum létező-e (nincs pl. február 30), a string alak már nem elég hatékony.

A dátum alak egyéb előnyöket is nyújt. Egy dátum alapján eldönthető, hogy az adott nap a hét melyik napja, a hónap hanyadik napja, stb. Kiszámítható az előző napi dátum, a következő heti dátum, stb.

Dátum készítése

A dátum típusú érték valójában dátumot és időt is leír, ezért talán találóbb lett volna a DateTime típusnév. Az aktuális dátumot (és időt) a new Date() módon kérhetjük le:

var d = new Date();

A new Date() forma a Date osztálybeli példányt készíti el, mint ahogy azt az OOP nyelveken megszokhattuk. Hasonlóan az OOP nyelvek esetén, a new a memóriafoglalást végzi, a Date az osztály neve, a Date() a konstruktor hívását jelöli.

Az elkészült példány a kliens oldali számítógép aktuális dátumát és idejét kéri le (mivel a JS kód a kliens számítógépen, a böngészőben fut). A dátum változóra (példány) metódusokat alkalmazhatunk. A lekérdező metódusok nevei get-el kezdődnek (a JS nyelv a Java-hoz hasonlóan nem ismeri a property fogalmát).

Dátummal kapcsolatos metódusok:

  • getYear() megadja az 1990 óta eltelt évek számát
  • getFullYear() megadja az évek számát
  • getMonth() a hónap sorszámát adja meg (0=január, 11=december)
  • getDate() megadja a hónapon belüli nap sorszámát (1..31)
  • getDay() a héten belüli nap sorszáma (0=vasárnap, 1=hétfő, ..., 6=szombat)
var d = new Date();
if (d.getMonth()==0) alert("január");


Idővel kapcsolatos metódusok:

  • getHours() az órák száma (0..23)
  • getMinutes() a percek száma (0..59)
  • getSeconds() a másodpercek száma (0..59)
  • getMilliseconds() az ezredmásodpercek száma (0..999)

Átalakítás egész számmá

Teljes dátum és idő átalakítása egész értékké:

  • getTime()

A getTime() függvény valójában az eltel ezredmásodpercek számát adja meg 1970 január 1 óta. Ez 2009-ben már egy hatalmas nagy számérték (39 év, évente 365*24*60*60*1000). Egy ilyen hosszú egész szám első pillantásban nem tűnik hasznosnak, de valójában nagyon is sok helyen használhatjuk fel:

  • két dátumot ez alapján nagyon könnyű összehasonlítani, melyik a kisebb vagy a nagyobb
  • könnyű kiszámítani a rákövetkező órai dátumot (hozzá kell adni 60*1000-t)

Dátum alakítása string-re

A dátumot különböző előre definiált formátumok szerint alakíthatjuk át szöveggé:

  • toLocaleString()
  • toDateString()
  • toTimeString()

Adott időpontú dátum létrehozása

A Date paraméteres konstruktorai segítségével nem csak az aktuális dátum és időhöz kapcsolódó példányt, hanem adott időponthoz tartozó példányt is létrehozhatunk:

var a = new Date(1994,11,23);
var b = new Date(2003,3,12,10,12,32);

Az a változóba a 1994.11.23 0:0:0 dátum kerül be, míg a b változóba a 2003.03.12 10:12:31 dátum lesz.

Dátum módosítása

A korábban megadott get metódusok párjai a set metódusok.

  • setFullYear(n) az év számát beállítja
  • setMonth(n) a hónap sorszámát állítja be
  • setDate(n) beállítja a hónapon belüli napsorszámot
  • setHours(n) az órák számát állítja be
  • setMinutes(n) a percek számát állítja be
  • setSeconds(n) a másodpercek számát állítja be
  • setMilliseconds(n) az ezredmásodpercek számát állítja be

Ezen felül használható a setTime(n), melynek segítésével egy egész szám alapján előállítja a hozzá tartozó dátumot és időt. Ezzel erős fegyverhez juthatunk:


var b = new Date(2003,3,12,10,12,32);
var c = new Date();
c.setTime(b.getTime()+1000);

A fenti példában a c dátum a b dátumhoz képest 1 másodperccel későbbi időpontot fogja tartalmazni.

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Cgi-ea/page120
Nézetek
nincs sb_35.172.224.102 cikk