Подтвердить что ты не робот

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

Кажется, что функция JavaScript Date() может возвращать только локальные даты и время. В любом случае, чтобы получить время для определенного часового пояса, например, GMT-9?

Объединив @Esailija и @D3mon-1stVFW, я понял: вам нужно иметь два смещения по часовой стрелке, по одному для локального времени и по одному для целевого времени, вот рабочий код:

var today = new Date();  
var localoffset = -(today.getTimezoneOffset()/60);
var destoffset = -4; 

var offset = destoffset-localoffset;
var d = new Date( new Date().getTime() + offset * 3600 * 1000)

Пример: http://jsfiddle.net/BBzyN/3/

4b9b3361

Ответ 1

var offset = -8;
new Date( new Date().getTime() + offset * 3600 * 1000).toUTCString().replace( / GMT$/, "" )

"Wed, 20 Jun 2012 08:55:20"

<script>
  var offset = -8;

  document.write(
    new Date(
      new Date().getTime() + offset * 3600 * 1000
    ).toUTCString().replace( / GMT$/, "" )
  );
</script>

Ответ 2

var today = new Date();  
var offset = -(today.getTimezoneOffset()/60);  

Ответ 3

Существует простая библиотека для работы с часовыми поясами, легко называемыми TimezoneJS, которые можно найти на https://github.com/mde/timezone-js.

Ответ 4

Вы всегда можете получить время по Гринвичу (пока клиентские часы верны).

Чтобы отобразить дату в произвольной временной зоне, постройте строку из UTC часов, минут и секунд после добавления смещения.