Obiekt Date, czyli przetwarzanie daty i czasu w JavaScript

Stronę tą wyświetlono już: 121 razy

Do przetwarzania czasu w JavaScript dostępna jest klasa o nazwie Date. Klasa ta dysponuje szeregiem metod umożliwiających pobieranie, ustawianie oraz formatowanie daty i czasu. Sam konstruktor działa w zależności od ilości podanych parametrów w następujący sposób:

Listing 1
  1. var now = new Date(); // pozyskana zostanie bieżąca data i godzina
  2. var someDateInMiliseconds = new Date(10000); // data w milisekundach od 00:00:00, 1 stycznia 1970 roku
  3. var someDateAsString = new Date("01/02/2000"); // ustawienie daty za pomocą tekstu (miesiąc/dzień/rok)
  4. var someDate = new Date(2017, 2, 8, 20, 0, 0); // ustawienie czasu poprzez podanie roku, miesiąca - indeksowanie od 0 - 11, dnia, godziny minuty i milisekund. Liczba argumentów jest opcjonalna pod warunkiem, że podane zostaną co najmniej dwie pierwsze wartości

Metody zwracające

Poniżej wypisane zostały metody zwracające klasy Date:

Nazwa metodyOpis
getDateZwraca numer dnia miesiąca (wartość z przedziału od 0 - 31)
getDayZwraca numer dnia tygodnia (wartość z przedziału od 0 - 6)
getFullYearZwraca rok jako liczbę
getHoursZwraca godzinę (liczba z zakresu od 0 do 23);
getMillisecondsZwraca milisekundy (wartość z zakresu od 0 do 999);
getMinutesZwraca liczbę minut (wartość z zakresu od 0 do 59);
getMonthZwraca numer miesiąca (wartość z zakresu od 0 do 11);
getSecondsZwraca sekundy (wartość z zakresu od 0 do 59);
getTimeZwraca liczbę milisekund, które upłynęły od północy 1 stycznia 1970 roku;
getTimezoneOffsetZwraca różnicę czasu pomiędzy UTC a czasem lokalnym w minutach
getUTCDateZwraca dzień miesiąca w UTC (wartość z przedziału od 1 do 31);
getUTCDayZwraca dzień tygodnia w UTC (wartość z przedziału od 0 do 6);
getUTCFullYearZwraca rok w UTC;
getUTCHoursZwraca godziny w UTC (wartość z zakresu od 0 do 23);
getUTCMillisecondsZwraca milisekundy w UTC (wartość z zakresu od 0 do 999);
getUTCMinutesZwraca minuty w UTC (wartość z przedziału od 0 do 59);
getUTCMonthZwraca miesiąc w UTC (wartość z przedziału 0 do 11);
getUTCSecondsZwraca sekundy w UTC (wartość od 0 do 59);
nowZwraca liczbę milisekund, jaka upłynęła od północy 1 stycznia 1970 roku do chwili wywołania tej metody;
parseParsuje podaną na wejściu datę w postaci tekstowej na liczbę, jaka upłynęła od północy 1 stycznia 1970 roku do daty zawartej w zmiennej tekstowej.
toDateStringZwraca datę jako tekst
toISOStringZwraca datę jako tekst używając standardu ISO;
toJSONZwraca datę jako tekst w formacie daty JSON;
toLocaleDateStringZwraca datę jako tekst używając lokalnego stylu formatowania daty;
toLocaleTimeStringZwraca czas jako tekst używając lokalnego stylu formatowania czasu;
toLocaleStringZamienia datę i czas na tekst wykorzystując lokalny styl formatowania daty i czasu;
toStringZamiana daty i czasu na postać tekstową
toTimeStringZamienia czas na postać tekstową;
toUTCStringZamienia datę zapisaną w UTC do postaci tekstu
UTCZamienia datę na milisekundy, które upłynęły od północy 1 stycznia 1970 w czasie UTC
valueOfZwraca milisekundy jakie upłynęły od północy 1 stycznia 1970 roku do podanej daty

Metody ustawiające

Oto zestawienie metod ustawiających:

Nazwa metodyOpis
setDateUstawia dzień miesiąca;
setFullYearUstawia rok;
setHoursUstawia godzinę;
setMillisecondsUstawia milisekundy;
setMinutesUstawia minuty;
setMonthUstawia miesiąc;
setSecondsUstawia sekundy
setTimeUstawia datę na podstawie podanego numeru przed/po pierwszym stycznia 1970 roku;
setUTCDateUstawia dzień miesiąca w UTC;
setUTCFullYearUstawia roke w UTC;
setUTCHoursUstawienie godziny w UTC;
csetUTCMillisecondsUstawia milisekundy w UTC
setUTCMinutesUstaiwa minuty w UTC;
setUTCMonthUstawia miesiąc w UTC
setUTCSecondsUstawia sekundy w UTC;

Obliczanie różnicy pomiędzy dwiema datami

Często gęsto zdarza się że różnicę liczyć chcę:

Listing 2
  1. var date1 = new Date("2/20/2000"); // ustawienie daty za pomocą tekstu (miesiąc/dzień/rok)
  2. var date2 = new Date("10/1/2017");
  3. var diff = new Date(Math.abs(date2.getTime() - date1.getTime()));
  4. alert((diff.getFullYear() - 1970) + " lat " + diff.getMonth() + " miesięcy " + diff.getDate() + " dni" );

Powyższy skrypt wyświetli: 17 lat 7 miesięcy 13 dni

Komentarze