2011-01-02 8 views

Antwort

46

Ja, es wird von der Systemzeit beeinflusst. Wenn jedoch die Ortszeit korrekt ist (für jede Zeitzone, auf die der Computer eingestellt ist), sollte sie in jeder Zeitzone gleich sein.

Der ECMAScript-Standard sagt (§15.9.1.1):

"Die Zeit wird in ECMAScript in Millisekunden seit dem 1. Januar 1970 UTC gemessen"

6

Sie werden nicht den gleichen Wert erhalten - Differenz zwischen zwei Browsern des Kunden ihre Systemzeit Abholung, aber wenn ihre Zeit abgelaufen ok gesetzt ist, sollten Sie zwei mal mit einem minimalen Unterschied erhalten, da die Zeitstempel immer new Date() verwenden, können Sie kann den UTC-Wert erhalten (new Date() gibt die Anzahl der Millisekunden zurück, die seit dem 1. Januar 1970 vergangen sind und sich nicht ändern), was eine universelle Zeit ist und ortsunabhängig ist.

2

Es wird wahrscheinlich immer eine Abweichung zwischen den Zeiten geben, die zwischen Maschinen erreicht werden, aber (ich lag falsch davor) JavaScript Date() nimmt die UTC-Zeitzone als Standard.

In der Regel ist es am besten, wenn die Zeit erforderlich ist, einfach die Serverzeit zu verwenden und bei Bedarf in der Ausgabe Zeitzonenkorrekturen anzuwenden.

+0

Diese falsch ist. Solange die Ortszeit stimmt, spielt die Zeitzone keine Rolle. –

+0

Er spricht über verschiedene Zeitzonen, die unterschiedliche Ortszeiten haben werden, es sei denn, jemand hat gewählt, seine Ortszeit von seiner Zeitzone auf eine andere Zeitzone zu verschieben. – BGerrissen

+0

'getTime' gibt jedoch nicht die lokale Zeit zurück. Solange die lokale Zeit richtig eingestellt ist (für jede Zeitzone, in der sich der Computer befindet), ist auch die von 'getTime' zurückgegebene UTC-Zeit korrekt. –

1

Sie könnten dies tun wollen, wenn Sie das gleiche Datum wie dem Server über verschiedene Zeitzonen wollen:

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

Code:

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

Arbeitsplatz in Großbritannien:

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

Mein VPS:

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

Unterschied zwischen getTime Werten 48.369 Millisekunden (48s) nicht synchron nicht der Zone 1 Stunde Differenz

+4

ein Experiment ist immer eine gute Möglichkeit, Dinge zu beweisen –

Verwandte Themen