Если javascript "(новая дата()). GetTime()" запускается из двух разных часовых поясов

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

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

Ответ 1

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

В стандарте ECMAScript говорится (§15.9.1.1):

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

Ответ 2

код:

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 час

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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