Получить текущую временную метку из определенного часового пояса

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

Спасибо!

Ответы на вопрос(3)

вам нужно применить смещение часового пояса ко времени, а затем удалить смещение из значения (проверьте это, я полагаю, из памяти):

var now = new Date(),
    offset = -(now.getTimezoneOffset() * 60 * 1000), // now in milliseconds
    userUnixStamp = +now + offset;

Теперь смещение от вашего собственного:

var now = new Date(),
    offset = now.getTimezoneOffset() * 60 * 1000,
    yourUnixStamp = userUnixStamp - offset;
 Eli07 мар. 2012 г., 02:51
Не могли бы вы объяснить ситуацию немного больше? Откуда берется дата? Как ты к этому добираешься?
 Toby07 мар. 2012 г., 02:31
Не могли бы вы обернуть это в пример, где клиент, независимо от того, что возвращает ту же метку времени для Лос-Анджелеса? потому что я не могу сейчас сосредоточиться на этом ... я продолжаю получать разные результаты. * brainmelt
 Toby07 мар. 2012 г., 02:54
Мне нужно, чтобы любой клиент часового пояса работал одновременно с сервером - я уже установил время сервера в UTC, чтобы упростить его - теперь я попытался сгенерировать время UTC с помощью этого: var d = new Date (); var utc = Math.round (d.getTime () + (d.getTimezoneOffset () * 60000) / 1000); но он всегда возвращает микротайм (почему ?! есть метка времени / 1000), которая на 8 часов впереди ...
Решение Вопроса

а затем конвертировать в ваш часовой пояс на сервере?

var utcEpochSeconds = dateObj.getTime() + (dateObj.getTimezoneOffset() * 60000);
 Toby07 мар. 2012 г., 19:13
но если я сравниваю свой локальный результат с временем UTC, я 8 часов выходной ?! (я в часовом поясе Лос-Анджелеса)
 06 мар. 2012 г., 03:43
Безусловно, лучшее решение, поскольку локальный компьютер не обязательно знает смещение часового пояса сервера. До сих пор не могу понять, почему нетdateObj.getUTCTime() метод.
 tjdett07 мар. 2012 г., 04:04
Да, если ваши часы не настроены неправильно или вы путешествуете на релятивистских скоростях:en.wikipedia.org/wiki/Coordinated_Universal_Time
 Toby07 мар. 2012 г., 02:32
UTC всегда один и тот же, несмотря ни на что? (Я сосу на вещи часового пояса)
 tjdett08 мар. 2012 г., 00:22
Ну да, потому что ты в СШАТихоокеанский часовой пояс, что на восемь часов отстает от UTC. Предполагая, что ваши системные часы и часовой пояс настроены правильно, ваш результат в формате UTC должен совпадать с результатом в формате UTC во всем мире, с отклонением в несколько секунд.

использованиеtoISOString чтобы получить метку времени UTC.

var date = new Date();
date.toISOString(); // EST would be 6 hour diff from GMT
 Trevor06 мар. 2012 г., 15:49
Разве это не старый IE, который не поддерживает его? : P В любом случае, создайте прокладку.
 RobG06 мар. 2012 г., 03:47
toISOString() ES5 и пока не поддерживается хорошим процентом используемых веб-браузеров. Не трудно подражать тем, кому этого не хватает.

Ваш ответ на вопрос