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

Автор: Алексей1982 (не зарегистрирован), дата: 7 июня, 2022 - 06:48
#permalink

Действительно. Зачем прибавлять часовое смещение, если его нужно отнимать.
Я как-то и сам попался в эту логическую ловушку.


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

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

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


 
Поиск по сайту
Содержание

Учебник javascript

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

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

Интерфейсы

Все об AJAX

Оптимизация

Разное

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

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