Przejdź do treści

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 zerowego
Number year - rok (wartości z zakresu 0...99 oznaczają lata od 1900 do 1999)
Number month - miesiąc z zakresu 0...11
Number 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")

Komentarze

Zobacz więcej komentarzy

Facebook