Tworzenie obiektu daty - new Date
Jak utworzyć obiekt przechowujący datę i czas?
new Date() new Date(value) new Date(year, month) new Date(year, month, date) new Date(year, month, date, hours) new Date(year, month, date, hours, minutes) new Date(year, month, date, hours, minutes, seconds) new Date(year, month, date, hours, minutes, seconds, ms)
- Parametry:
String|Number
value - data i czas w postaci tekstowej (w formacie zgodnym z Date.parse) albo liczba milisekund od północy 1 stycznia 1970 w strefie czasowej południka zerowegoNumber
year - rok (wartości z zakresu 0...99 oznaczają lata od 1900 do 1999)Number
month - miesiąc z zakresu 0...11Number
date - dzień miesiąca z zakresu 1...31 (domyślnie: 1)Number
hours - godzina z zakresu 0...23 (domyślnie: 0)Number
minutes - minuta z zakresu 0...59 (domyślnie: 0)Number
seconds - sekunda z zakresu 0...59 (domyślnie: 0)Number
ms - milisekunda z zakresu 0...999 (domyślnie: 0)- Wartość:
Date
- nowa instancja obiektu daty i czasu
Tworzy nową instancję obiektu, przechowującego podaną datę i czas, określoną w lokalnej strefie czasowej (chyba że zwartość argumentu value mówi inaczej). Na tak utworzonym obiekcie możemy później wykonywać inne przekształcenia.
Wszystkie parametry mogą przyjmować również wartości ujemne. Na przykład zapis new Date(2014, -1)
jest równoważny new Date(2013, 11)
. Natomiast jeżeli podamy tylko jeden argument i będzie on miał wartość ujemną, odliczanie milisekund odbędzie się wstecz od północy 1 stycznia 1970 w strefie czasowej południka zerowego.
1 sekunda zawiera 1000 milisekund.
Możemy również podawać daty spoza przewidzianego zakresu. Na przykład zapis new Date(2014, 0, 32)
jest równoważny new Date(2014, 1, 1)
. Funkcja sama przeliczy prawidłową datę, uwzględniając przy tym nawet lata przestępne.
W przypadku niepodania żadnych argumentów, zostanie utworzony nowy obiekt z aktualną datą i czasem.
Zwracam uwagę, że zapis np. new Date(2000)
nie oznacza daty 1 stycznia 2000. Wartość 2000 zostanie potraktowana jako liczba milisekund od północy 1 stycznia 1970 w strefie czasowej południka zerowego.
Uczulam również, że podanie wartości 12 jako month wcale nie oznacza grudnia, ale styczeń następnego roku.
Aby utworzyć obiekt daty tylko na podstawie roku, należy wpisać go tekstowo: new Date("2000")
. Co ciekawe, nie ma możliwości użycia argumentu year w celu ustawienia roku 0 - 99, gdyż w takim przypadku funkcja doda podaną wartość do liczby 1900 i otrzymamy rok z zakresu 1900 - 1999. Jest to w pewnym sensie pozostałość tzw. pluskwy milenijnej. Aby ustawić rok z przedziału 0 - 99, musimy się posłużyć zapisem tekstowym - np. new Date("0033-04-03")
albo dodatkowo z podaniem czasu: new Date("0033-04-03T15:00:00+02:00")
.
Zwróć uwagę, że zapisując rok tekstowo zawsze musimy użyć czterech cyfr, a w przypadku pozostałych części daty i czasu (z wyjątkiem milisekund) - dwóch cyfr.
Przykład new Date
new Date(); // np.: new Date("Sat Jan 04 2014 17:38:21 GMT+0100") new Date("2014-01-04T17:38:21+01:00"); // np.: new Date("Sat Jan 04 2014 17:38:21 GMT+0100") new Date(86400000); // np.: new Date("Fri Jan 02 1970 01:00:00 GMT+0100") new Date(-86400000); // np.: new Date("Wed Dec 31 1969 01:00:00 GMT+0100") new Date(-1, 0); // np.: new Date("Fri Jan 01 -0001 00:00:00 GMT+0100") new Date(0, 0); // np.: new Date("Mon Jan 01 1900 00:00:00 GMT+0100") new Date(99, 0); // np.: new Date("Fri Jan 01 1999 00:00:00 GMT+0100") new Date(100, 0); // np.: new Date("Fri Jan 01 0100 00:00:00 GMT+0100") new Date(2000, -1); // np.: new Date("Wed Dec 01 1999 00:00:00 GMT+0100") new Date(1999, 12); // np.: new Date("Sat Jan 01 2000 00:00:00 GMT+0100") new Date(2000, 1, -1); // np.: new Date("Sun Jan 30 2000 00:00:00 GMT+0100") new Date(2000, 1, 30); // np.: new Date("Wed Mar 01 2000 00:00:00 GMT+0100") - 2000 był rokiem przestępnym new Date(1410, 6, 15); // np.: new Date("Sun Jul 15 1410 00:00:00 GMT+0200") new Date(1410, 6, 15, 13); // np.: new Date("Sun Jul 15 1410 13:00:00 GMT+0200") new Date(1410, 6, 16, -1); // np.: new Date("Sun Jul 15 1410 23:00:00 GMT+0200") new Date(1410, 6, 14, 25); // np.: new Date("Sun Jul 15 1410 01:00:00 GMT+0200") new Date(1410, 6, 15, 13, 30); // np.: new Date("Sun Jul 15 1410 13:30:00 GMT+0200") new Date(1410, 6, 15, 13, -1); // np.: new Date("Sun Jul 15 1410 12:59:00 GMT+0200") new Date(1410, 6, 15, 13, 60); // np.: new Date("Sun Jul 15 1410 14:00:00 GMT+0200") new Date(1410, 6, 15, 13, 30, 59); // np.: new Date("Sun Jul 15 1410 13:30:59 GMT+0200") new Date(1410, 6, 15, 13, 30, -1); // np.: new Date("Sun Jul 15 1410 13:29:59 GMT+0200") new Date(1410, 6, 15, 13, 30, 60); // np.: new Date("Sun Jul 15 1410 13:31:00 GMT+0200")