1

Zend API を使用してイベントを追加すると、夏時間の夏時間は 1 時間ずれます。

追加する日付に使用する文字列は「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

google calendar APIを見ると、event をdateTimeRFC 3339 形式で渡す必要があることがわかります (質問で示した例に基づいて既に認識しているため)。

RFC 3339 形式の仕様には、次のように記載されています。

ローカル タイム ゾーンの夏時間規則は非常に複雑で、地域の法律に基づいて予測不可能な時間に変更される可能性があるため、協定世界時 (UTC) を使用することで真の相互運用性を実現できます。この仕様は、ローカル タイム ゾーンのルールには対応していません。

これは基本的に、この仕様が DST を考慮していないことを意味します。基本的に、日付を Google Calendar API に渡す前に、DST を調整する必要があります。

于 2014-06-08T22:46:46.747 に答える
0

Zend_Gdata_Calendar_EventEntryを呼び出すことができ、タイムゾーン識別子をエントリまたは UTC オフセットgetTimezone()setTimezone()適用できるはずです。

"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 に答える