Вы сказали:
Использование javascript Я знаю, что часовой пояс моих пользователей - UTC +3.
Вы, наверное, пытался что-то вроде этого:
var offset = new Date().getTimezoneOffset();
Это возвращает текущий смещение от UTC в течение нескольких минут, с положительными значениями падения к западу от UTC. Это не вернуть часовой пояс!
Часовой пояс не является смещением. Часовой пояс имеет офсет. Он может иметь несколько различных смещений. Часто есть два смещения: один для стандартного времени и один для летнего времени. Одно числовое значение не может представлять это в одиночку.
- Пример часового пояс:
"America/New_York"
- Соответствующие стандартное отклонение:
UTC-5
- Соответствующие дневное смещение:
UTC-4
Кроме двух смещений, а также завернутый в том, что часовой пояс - это даты и время перехода между двумя смещениями, чтобы вы знали, когда они приходят LY. Существует также исторический отчет о том, как смещения и переходы могут со временем меняться.
См. Также «Часовой пояс! = Смещение» в the timezone tag wiki.
В вашем примере, вы, вероятно, получили значение -180
из javascript, представляющее текущий смещение UTC + 3. Но это только смещение для этого конкретного момента времени! Если вы следуете minaz's answer, вы получите часовой пояс, который делает предположение, что UTC + 3 всегда правильное смещение. Это будет работать, если в реальном времени есть что-то вроде "Africa/Nairobi"
, который никогда не использовал ничего, кроме UTC + 3. Но для всех, кого вы знаете, ваш пользователь может быть в "Europe/Istanbul"
, который использует UTC + 3 летом и UTC + 2 зимой.
+3 это только пример. – shealtiel
отредактирован для использования utf offset – minaz
+1 просто чтобы сделать еще + 3 ^^ (просто шучу, ваш ответ правильный). –