Si javascript "(new Date()).getTime () " est exécuté à partir de 2 fuseaux horaires différents

si JavaScript (new Date()).getTime() est exécuté simultanément à partir de 2 fuseaux horaires différents, obtiendrez-vous la même valeur?

cette valeur sera-t-elle affectée par le temps système sur la machine où le navigateur est en cours d'exécution?

37
demandé sur Gottlieb Notschnabel 2011-01-02 12:24:58

5 réponses

oui, il est affecté par le temps du système. Cependant, si l'heure locale est correcte (pour n'importe quel fuseau horaire sur lequel l'ordinateur est réglé), elle devrait être la même dans n'importe quel fuseau horaire.

le standard ECMAScript dit ( §15.9.1.1 ):

"le Temps est mesuré en ECMAScript dans millisecondes depuis le 1er janvier 1970 L'UTC."

46
répondu Matthew Flaschen 2012-05-19 02:12:43

Code:

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

mon ordinateur AU ROYAUME-UNI:

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

My VPS:

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

différence entre les valeurs getTime est de 48,369 millisecondes (48s) hors de synchronisation pas la différence de zone d'une heure

21
répondu PeanutPower 2013-09-21 02:50:38

vous n'obtiendrez pas la même valeur - différence entre les navigateurs de deux clients récupérant leur temps système, mais si leur temps est configuré correctement, vous devriez obtenir deux fois avec une différence minimale depuis l'obtention de l'horodatage en utilisant new Date() , vous pouvez obtenir la valeur UTC ( new Date() renvoie le nombre de millisecondes découpées depuis le 1er janvier 1970, et cela ne changera pas), qui est temps universel et est agnostique de localisation.

6
répondu darioo 2011-01-02 09:43:18

vous pourriez vouloir faire cela si vous voulez la même date que votre serveur à travers différents fuseaux horaires:

var UTC=new Date(Date.UTC(serverYear,serverMonth-1,serverDate,0,0,0,0)); 
2
répondu mplungjan 2011-01-02 09:33:39

il y aura très probablement toujours un écart entre les temps atteints entre les machines, mais JavaScript Date () prend par défaut le fuseau horaire UTC.

habituellement, lorsque le temps est essentiel, il est préférable d'utiliser simplement le temps du serveur et d'appliquer des corrections de fuseau horaire à celui de la sortie si nécessaire.

2
répondu BGerrissen 2011-01-02 09:49:16