2011-01-02 13 views

Odpowiedz

46

Tak, wpływa na to czas systemowy. Jeśli jednak czas lokalny jest prawidłowy (dla dowolnej strefy czasowej ustawionej na komputerze), powinna być taka sama w dowolnej strefie czasowej.

Norma mówi ECMAScript (§15.9.1.1):

"Czas jest mierzony w milisekundach ECMAScript w od 01 stycznia 1970 UTC"

6

Nie uzyskasz tej samej wartości - różnica między przeglądarkami dwóch klientów pobiera czas ich systemu, ale jeśli ich czas jest ustawiony w porządku, powinieneś dostać dwa razy z minimalną różnicą od czasu otrzymania znacznika czasu za pomocą new Date(), ty może uzyskać wartość UTC (new Date() zwraca liczbę milisekund, które upłynęły od 1 stycznia 1970 r., a to się nie zmieni), która jest czasem uniwersalnym i jest nieosiagalna.

2

Najprawdopodobniej zawsze będzie odstępstwo między czasami uzyskanymi między maszynami, ale (byłem wcześniej w błędzie) Data JavaScript() domyślnie przyjmuje strefę czasową UTC.

Zwykle, gdy niezbędny jest czas, najlepiej jest po prostu użyć czasu serwera i zastosować korektę strefy czasowej do tej w wyjściu, jeśli jest to wymagane.

+0

To nieprawidłowe. Dopóki czas lokalny jest prawidłowy, strefa czasowa nie ma znaczenia. –

+0

Mówi o różnych strefach czasowych, które będą miały różne lokalne czasy, chyba że ktoś wybierze przesunięcie czasu lokalnego ze swojej strefy czasowej, aby odpowiadał innej strefie czasowej. – BGerrissen

+0

'getTime' nie zwraca jednak czasu lokalnego. Dopóki czas lokalny jest ustawiony prawidłowo (dla dowolnej strefy czasowej, w której znajduje się komputer), czas UTC zwrócony przez 'getTime' również będzie prawidłowy. –

1

Możesz chcieć to zrobić, jeśli chcesz tę samą datę jako serwer w różnych strefach czasowych:

var UTC=new Date(Date.UTC(serverYear,serverMonth-1,serverDate,0,0,0,0)); 
20

Kod:

var today = new Date(); 
console.log(today); 
var t = today.getTime(); 
console.log(t); 

Mój komputer w Wielkiej Brytanii:

Sat Sep 21 2013 03:45:20 GMT+0100 (GMT Daylight Time) 
1379731520112 

My VPS:

Sat, 21 Sep 2013 02:44:31 GMT 
1379731471743 

Różnica pomiędzy wartościami GetTime jest 48,369 milisekund (48S) zsynchronizowany nie 1 godziny różnicy strefa

+4

eksperyment jest zawsze dobrym sposobem na potwierdzenie –

Powiązane problemy