Javascript.RU

getTimezoneOffset

Синтаксис

getTimezoneOffset()

Аргументы

Описание, примеры

Смещение часового пояса равняется разнице между универсальным (UTC) и местным временем в минутах. Заметьте, что смещение будет положительным, если местное время отстаёт от UTC, и отрицательным, если оно опережает UTC. Например, если ваш часовой пояс - UTC+10 (Владивостокское зимнее время), то метод вернёт -600.

Это значение не является постоянным для часового пояса, т.к. меняется при наступлении летнего времени.

Пример: Получение часового пояса
x = new Date()
// Вычислим значение смещения текущего часового пояса в часах
currentTimeZoneOffsetInHours = -x.getTimezoneOffset()/60

Автор: Zasmeshi, дата: 23 ноября, 2014 - 16:10
#permalink

Плохо, что возвращается разницы с противоположным знаком. Скажем, если GMT +3, то функция getTimezoneOffset() покажет - 180, а не +180. Еще нужно дописывать действия, чтобы вернуть с нужным знаком.


Автор: Гость (не зарегистрирован), дата: 8 января, 2015 - 15:52
#permalink

не нужно. С минусом - это и будет разница, если нужен модуль, то Math.abs


Автор: Гость (не зарегистрирован), дата: 19 февраля, 2015 - 17:44
#permalink

Как раз таки НУЖНО! Хоть подумал прежде, чем ответить? Допустим сервер для всех пользователей планеты выводит на страницу время публикации статьи в виде универсального (UTC) времени, скажем 14:00. Нужно с помощью JS переделать его на местное время пользователя. Местное время UTC+3 (Москва) означает, что у пользователя время на 3 часа БОЛЬШЕ, чем всемирное универсальное время. Когда на сервере 14:00, местное - 17:00.

Берем функцию new Date().getTimezoneOffset() / 60. Оно выведет -3, вместо логичного +3. То есть, чтобы из серверного времени получить местное, мы должны взять эту функция с ОБРАТНЫМ знаком.

local_hour = server_hour - new Date().getTimezoneOffset() / 60; // server_hour = 14

Автор: Гость (не зарегистрирован), дата: 4 мая, 2015 - 00:58
#permalink

Так в чем проблема то? На стороне сервера время публикации сохранено в UTC, получаешь разницу клиента и прибавляешь ко времени публикации, если положительная разница то будет +3, если отрицательная то -3 часа получиться и все.


Автор: Гость (не зарегистрирован), дата: 28 августа, 2015 - 01:06
#permalink

Может ваш код не логичен? В таком варианте все норм:

offset = (new Date).getTimezoneOffset() * 6000
publish_timestamp_local = server_timestamp - offset // - (-1080000) = +1080000

Автор: Гость (не зарегистрирован), дата: 4 мая, 2016 - 12:23
#permalink

Получение часового пояса

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


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 16 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum