1

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

有任何想法吗?我一直在研究并试图解决这个问题一段时间。

谢谢。

4

3 回答 3

1

我确实将时区标识符应用于我的条目。我使用 -05:00 --> "2012-10-02T06:00:00-05:00"

我认为 setTimezone 只适用于 Zend_Date

于 2012-10-03T15:34:43.313 回答
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"
}
于 2012-10-03T11:19:12.023 回答
0

如果您查看google calendar API,您会注意到 eventdateTime必须以 RFC 3339 格式传递(根据您在问题中给出的示例,您已经知道)。

RFC 3339 格式的规范规定:

由于当地时区的夏令时规则非常复杂,并且可能在不可预测的时间根据当地法律发生变化,因此使用协调世界时 (UTC) 可以最好地实现真正的互操作性。本规范不符合当地时区规则。

这基本上意味着该规范不考虑 DST。基本上,在将日期传递给 Google Calendar API 之前,您负责调整 DST。

于 2014-06-08T22:46:46.747 回答