在对时区进行一些研究时,我发现了interesting post on the GeoNames forum:
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
,this SO answer(在Java中)也依赖它。
我的目标是使用原始偏移来构建一个时区下拉菜单,显示每组城市的UTC偏移,现在I'm listing all the transitions for the timezone并使用非DST偏移量,但我上面提到的帖子表明这对南半球来说是错误的。
编辑: http://download.oracle.com/javase/1.4.2/docs/api/java/util/TimeZone.html#getRawOffset%28%29
来自GeoNames的Marc告诉我,他们通过使用Java方法得到原始偏移量。任何Java向导都知道他们是如何做到的?或者我可以在哪里浏览getRawOffset()
的源代码?
关于如何在PHP中获取原始偏移的任何想法?
答案 0 :(得分:0)
目前尚不清楚为什么需要原始偏移。
在PHP中,给定时间+位置,您可以实例化DateTime
对象,然后调用其getOffset()
方法来计算当前时区偏移量。迭代不同的位置,这应该是获取下拉菜单所需的全部,不是吗?