Zend Google Calendar API - 添加活动一小时

时间:2012-10-02 23:32:59

标签: zend-framework timezone google-calendar-api

当我使用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”)。

有什么想法吗?我一直在研究并尝试解决这个问题。

感谢。

3 个答案:

答案 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。