当我使用Zend API添加活动时,夏季夏令时数月的时间为一小时。
我用于添加日期的字符串是“2012-10-02T06:00:00-05:00”。我在东部时区,我的Google日历也设置为东部,但时间显示为早上7点。 我也试过“2012-10-02T06:00:00.000-05:00”。
我也尝试过使用date_default_timezone_set(“America / Detroit”)。
有什么想法吗?我一直在研究并尝试解决这个问题。
感谢。
答案 0 :(得分:1)
我确实在我的条目中应用了时区标识符。我用-05:00 - > “2012-10-02T06:00:00-05:00”
我认为setTimezone仅适用于Zend_Date
答案 1 :(得分:0)
Zend_Gdata_Calendar_EventEntry
允许您拨打getTimezone()
和setTimezone()
,您也应该能够为您的条目或UTC偏移量应用时区标识符。
"end": {
"dateTime": "2012-07-12T10:30:00.0z" //z is identifier for UTC
},
"start": {
"dateTime": "2012-07-12T09:30:00.0z"
}
"start": {
"dateTime": "2012-07-11T03:30:00-06:00" //-06:00 would be UTC offset
},
"end": {
"dateTime": "2012-07-11T04:30:00-06:00"
}
答案 2 :(得分:0)
如果查看google calendar API,您会发现事件dateTime
必须以RFC 3339格式传递(正如您已经知道的那样,基于您提供的示例)你的问题)。
specification for the rfc 3339 format州:
因为本地时区的夏令时是这样的 令人费解,并且可以在不可预测的时间根据当地法律进行变更, 使用Coordinated Universal可以最好地实现真正的互操作性 时间(UTC)。此规范不适合当地时区 规则。
这基本上意味着此规范不考虑DST。基本上,在将日期传递给Google Calendar API之前,您需要负责调整DST。