Смещение часового пояса - PullRequest
3 голосов
/ 19 октября 2011

Во время исследования часовых поясов я нашел этот интересный пост на форуме GeoNames :

rawOffset gives the fixed timezone.
dstOffset gives the civil time offset from GMT on July 1st
gmtOffset gives the civil time offset from GMT on January 1st

В южном полушарии, например, для Чили (http://ws.geonames.org/timezone?lat=-33.46912&lng=-70.641997) у нас есть следующие значения:

rawOffset = -4 indicating the timezone
dstOffset = -4
gmtOffset = -3, which means that daylight saving time is in use in January.

В северном полушарии, например, в Нидерландах (http://ws.geonames.org/timezone?lat=51.589322&lng=4.774491):

rawOffset = 1
dstOffset = 2
gmtOffset = 1, indacting that daylight saving time is in use in July.

Это не первый раз, когда я rawOffset вижу, этот SO-ответ (на Java) также полагается на него.

Моя цель - использовать необработанное смещение для создания выпадающего меню часового пояса, показывающего смещения UTC для каждой группы городов, прямо сейчас Я перечисляю все переходы для часового пояса и использую смещение не DST, но пост, о котором я упоминал выше, предполагает, что это неправильно для южного полушария.


РЕДАКТИРОВАТЬ: http://download.oracle.com/javase/1.4.2/docs/api/java/util/TimeZone.html#getRawOffset%28%29

Марк из GeoNames сказал мне, что они получают необработанное смещение с помощью этого метода Java.

Любой мастер Java знает, как они это делают? Или где я могу просмотреть их исходный код getRawOffset()?


Любые идеи о том, как я могу получить необработанное смещение в PHP?

1 Ответ

0 голосов
/ 03 ноября 2011

Непонятно, зачем вам необработанное смещение.

В PHP, учитывая время + местоположение, вы можете создать экземпляр объекта DateTime и затем вызвать его метод getOffset() для вычисления текущего смещения часового пояса.,Итерируя по разным местам, это должно быть все, что вам нужно, чтобы получить выпадающее меню, нет?

См. http://www.php.net/manual/en/datetime.getoffset.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...