Если javascript "(new Date ()). GetTime ()" запущен из 2 разных часовых поясов - PullRequest
39 голосов
/ 02 января 2011

Если JavaScript (new Date()).getTime() запущен из 2 разных часовых поясов одновременно, получите ли вы одно и то же значение?

Будет ли это значение зависеть от системного времени, установленного на компьютере, на котором работает браузер?

Ответы [ 5 ]

48 голосов
/ 02 января 2011

Да, это зависит от системного времени. Однако, если местное время является правильным (для любого часового пояса, установленного на компьютере), оно должно быть одинаковым в любом часовом поясе.

Стандарт ECMAScript гласит ( §15.9.1.1 ):

"Время измеряется в ECMAScript в миллисекунды с 1 января 1970 года UTC. "

22 голосов
/ 21 сентября 2013

Код:

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

Мой компьютер в Великобритании:

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

Мой VPS:

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

Разница между значениями getTime составляет 48 369 миллисекунд (48 с) несинхронизирован, не разница в 1 час

6 голосов
/ 02 января 2011

Вы не получите одно и то же значение - различие между двумя браузерами клиента, определяющими их системное время, но если их время настроено нормально, вы должны получить два раза с минимальной разницей с момента получения метки времени с помощью new Date(), вы можете получить значение UTC (new Date() возвращает количество миллисекунд, прошедших с 1 января 1970 года, и оно не изменится), которое является универсальным временем и не зависит от местоположения.

2 голосов
/ 02 января 2011

Возможно, вы захотите сделать это, если вы хотите, чтобы ваша дата совпадала с вашим сервером в разных часовых поясах:

var UTC=new Date(Date.UTC(serverYear,serverMonth-1,serverDate,0,0,0,0)); 
2 голосов
/ 02 января 2011

Скорее всего, всегда будет разница между временами, достигнутыми между компьютерами, но (я ошибался раньше) JavaScript Date () принимает часовой пояс UTC по умолчанию.

Обычно, когда время необходимо, лучше всегопросто используйте время сервера и при необходимости примените поправки к часовому поясу в выходных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...