Obiekt Date
JavaScript nie posiada danych typu date. Jednakże, możesz użyć obiektu Date
i jego metod do pracy z datami i czasem w swoich aplikacjach. Obiekt Date
posiada wiele metod do ustawiania, pobierania i manipulacji datami. Nie posiada żadnych właściwości.
W JavaScript uchwyty dat są podobne jak w Java. Oba języki mają wiele takich samych metod i oba języki przechowują daty w liczbie milisekund od 1-ego stycznia 1970, 00:00:00.
Obiekt Date jest z zakresu -100,000,000 dni do 100,000,000 dni odnosząc się do 01 stycznia, 1970 UTC.
Do utworzenia obiektu Date
służy:
dateObjectName = new Date([parameters])
gdzie: dateObjectName
jest nazwą tworzonego obiektu; Date
potrafi też być nowym obiektem lub właściwością już istniejącego obiektu.
W poprzedniej składni parameters
mogły być:
- Niczym: tworzyć dzisiejszą datę i czas. Na przykład:
today = new Date()
. - Łańcuchem reprezentującym datę w następujących formach: "Month day, year hours:minutes:seconds." Na przykład:,
Xmas95 = new Date("December 25, 1995 13:30:00")
. Jeśli opuszczasz godziny, minuty lub sekundy to wartość ich będzie ustawiona na zero. - Ustawienia wartości liczby całkowitej dla roku, miesiąca i dnia. Na przykład,
Xmas95 = new Date(1995,11,25)
. Ustawienia wartości dla roku, miesiąca, dnia, godziny, minuty, sekund. Na przykład:Xmas95 = new Date(1995,11,25,9,30,0)
.
JavaScript 1.2 i wcześniejsze
Obiekt Date
postępuje następująco:
- Daty z przed roku 1970 nie są uznawane.
- Data w JavaScript zależy od dostępności i zachowania rodzaju platformy; zachowanie platform obiektu
Date
różnią się pomiędzy sobą.
Metody obiektu Date
Metody obiektu Date
są do obsługi daty i czasu zawartego w tych obszernych kategoriach:
- metody "
set
", służy do ustawienia wartości daty i czasu w obiektachDate
. - metody "
get
", służą do pobrania wartości daty i czasu w obiektachDate
. - metody "
to
", służy do powtórzenia łańcuchów wartości z obiektówDate
. - parsowanie i metody UTC, służą do analizy składniowej łańcuchów
Date
.
Z metodami "get
" i "set
" możemy pobrać i ustawić sekundy, minuty, godziny, dni miesiąca, dni tygodnia, miesiące, jak i poszczególne lata. Istnieje metoda getDay
, która zwraca dzień tygodnia, ale nie współpracuje z metodą setDay
, ponieważ dzień tygodnia jest ustawiany automatycznie. Te metody używają liczb całkowitych do reprezentacji następujących wartości:
- Sekund /i minut: 0 do 59
- Godziny: 0 do 23
- Dzień: 0 (Niedziela) do 6 (Sobota)
- Data: 1 do 31 (dzień miesiąca)
- Miesiące: 0 (Styczeń) do 11 (Grudzień)
- Lata: lata od 1900
Na przykład, przypuśćmy, że zdefiniowałeś następującą datę:
Xmas95 = new Date("December 25, 1995")
Następnie Xmas95.getMonth()
zwraca 11, i Xmas95.getFullYear()
zwraca 1995.
Metody getTime
i setTime
są użyteczne dla porównania dat. Metoda getTime
zwraca liczbę milisekund od 1 stycznia 1970, 00:00:00 (
January 1, 1970, 00:00:00
) dla obiektu Date
.
Na przykład, następujący kod wyświetla liczbę dni opuszczonych w aktualnym roku:
today = new Date() endYear = new Date(1995,11,31,23,59,59,999) // Ustawia dni i miesiące endYear.setFullYear(today.getFullYear()) // Ustawia ilość lat '''(?)''' msPerDay = 24 * 60 * 60 * 1000 // Liczba milisekund na dzień daysLeft = (endYear.getTime() - today.getTime()) / msPerDay daysLeft = Math.round(daysLeft) //zwraca dni opuszczone dni w roku
Ten przykład stworzył obiekt Date
nazywany today, który stanowi dzisiejszą datę. Następnie utworzył obiekt Date
nazwany endYear
i ustawi się od roku do aktualnego roku. Następnie, użyje liczbę milisekund na dzień, to obliczy liczbę dni pomiędzy dzisiejszym dniem today a endYear
, używających getTime
i zaokrąglenie do liczby dni.
Metoda parse
jest użyteczna dla przydzielania wartości z łańcucha daty do wykorzystania przez obiekty Date
. Na przykład, następujący kod używa parse
i setTime
do przydzielenia wartości obiektu IPOdate
:
IPOdate = new Date() IPOdate.setTime(Date.parse("Aug 9, 1995"))
Używanie obiektu Date: Przykład
W następującym przykładzie, funkcja JSClock()
zwraca czas w formacie zegara cyfrowego.
function JSClock() { var time = new Date() var hour = time.getHours() var minute = time.getMinutes() var second = time.getSeconds() var temp = "" + ((hour > 12) ? hour - 12 : hour) if (hour == 0) temp = "12"; temp += ((minute < 10) ? ":0" : ":") + minute temp += ((second < 10) ? ":0" : ":") + second temp += (hour >= 12) ? " P.M." : " A.M." return temp }
Pierwsza funkcja JSClock
tworzy nowy obiekt Date
, który nazywany jest time
; nie dający argumentów, czas jest tworzony z aktualną datą i czasem. Następnie metody getHours
, getMinutes
, i getSeconds
przypisują wartości aktualnej godziny, minuty i sekundy do hour
, minute
, i second
.
Następne cztery linijki instrukcji budują łańcuch wartości oparty na czasie. Pierwsza instrukcja tworzy zmienne temp
, przydzielając jej wartość używanego warunku wyrażenia; jeśli hour
jest wyższa niż 12, (godzina - 12), w innym przypadku prosta godzina, chyba że jest godzina 0, która to staje się 12.
Następna instrukcja przypisuje wartość minute
do temp. Jeśli wartość minute
jest mniejsza niż 10, wyrażenie warunkowe dodaje łańcuch z poprzedzającym ją zerem; w innym przypadku dodaje rozgraniczający dwukropek. Następnie instrukcja dołącza sekundy do temp w ten sam sposób.
Kończąc, wyrażenie warunkowe dołącza "PM
" do temp, jeśli hour
posiada wartość 12 lub wyższą; w innym przypadku, to dołącza "AM
" do temp
.