2017-03-03 26 views

Odpowiedz

8

Biorąc pod uwagę, że nie potrzebujesz połączenia z Internetem, aby korzystać z JavaScript, dostaje aktualną datę & czas (i przez pełnomocnika, przesunięcie UTC/ustawienia lokalne) ze środowiska lokalnego klienta. Możesz to sprawdzić, zmieniając zegar lokalny.

Wystarczy pamiętać, aby zmienić go z powrotem .. :)

3

Tak, jest to oparte na czasie lokalnym urządzenia, na którym oceniane jest połączenie, podobnie jak każdy inny język.

+2

Zauważ, że [spec] (http://www.ecma-international.org/ecma-262/6.0/#sec-date-constructor-date) jest otwarty na interpretację. Po prostu mówi "aktualny czas". Teoretycznie, implementacja może odejść do sieciowego serwera czasu, aby uzyskać właściwą wartość. W praktyce jest to czas lokalnego urządzenia. –

+0

Czy znasz jakiś popularny język komercyjny, który * nie * po prostu robi datę syscall na lokalnym komputerze? :) –

+0

Nie, tylko wskazując, na co pozwala specyfikacja w JavaScript. Na przykład w języku C#, [jest to wyraźnie określone] (https://msdn.microsoft.com/en-us/library/system.datetime.now (v = vs.110) .aspx), że jest to lokalny czas maszyny. –

7

Obiekt JavaScript reprezentuje moment w czasie, oparty na liczbie milisekund od epoki (1 stycznia 1970 o północy czasu UTC). Oczywiście, new Date używa zegara środowiska, w którym jest uruchamiany, aby uzyskać tę wartość. Więc jeśli jest to w przeglądarce na moim komputerze i mój zegar jest źle ustawiony, użyje niewłaściwego czasu mojego urządzenia. *

Następnie mają dwa zestawy funkcji, za pomocą których można uzyskać informacje o tym momencie w czasie: Lokalny funkcje strefy czasowej, takie jak getHours, , itp., oraz funkcje UTC, takie jak getUTCHours, getUTCMonth itd. Lokalne funkcje strefy czasowej działają w strefie czasowej środowiska. Oczywiście funkcje UTC działają w UTC.

Więc na przykład, powiedzmy, że ktoś jest w stanie Kalifornia w dniu 3 marca 2017 roku i robi to o godzinie 11:30 dokładnie czasu:

var dt = new Date(); 
console.log(dt.getHours()); // 11 -- e.g., 11 a.m. 
console.log(dt.getUTCHours()); // 19 -- e.g., 7 p.m. 

Podstawową wartość przedmiotu jest 1488569400000, ale lokalne funkcje strefy czasowej mówią nam, że jest godzina 11, a funkcje UTC mówią nam, że jest godzina dziewiąta


* (chociaż jak James Thorpe points out, spec jest a bit vague o tym, po prostu mówiąc, że używa „bieżącego czasu”, więc w teorii środowisko mogłoby zdecydować o jego użyciu serwer czasu innego niż lokalnym komputerze Ale ...)

1

Jest to data systemowa klienta (użytkownika). Składnia jest następująca:

new Date(); 
new Date(value); 
new Date(dateString); 
new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]); 

Obiekt Date jest typ danych wbudowane w języku JavaScript. Obiekty daty są tworzone z nową datą(), jak pokazano poniżej.

Po utworzeniu obiektu Date wiele metod pozwala na jego obsługę. Większość metod pozwala po prostu uzyskać i ustawić pola roku, miesiąca, dnia, godziny, minuty, sekundy i milisekundy obiektu, używając czasu lokalnego lub czasu UTC (uniwersalnego lub GMT).

Standard ECMAScript wymaga, aby obiekt Date mógł reprezentować dowolną datę i godzinę, z dokładnością do milisekund, w ciągu 100 milionów dni przed lub po 1/1/1970. To jest zakres plus minus 273 785 lat, więc JavaScript może reprezentować datę i czas do 275755. Odnośny adres URL: https://www.tutorialspoint.com/javascript/javascript_date_object.htm