當我創建一個活動并給出一個臨近的日期時,一切都運行良好。但是,當我創建幾個月后的事件時,假設它處于夏令時 DST 之外(而我當前處于夏令時期間),則創建該事件時會出現不需要的 1 小時偏移。下面的代碼產生以下輸出:Starts 2020-12-20 9:00 Ends 2020-12-20 11:00 $event = array( 'summary' => $attributes['summary'], 'location' => $attributes['location'], 'description' => $attributes['description'], 'start' => array( 'dateTime' => 2020-12-20T10:10:00-04:00', 'timeZone' => 'America/Toronto', ), 'end' => array( 'dateTime' => 2020-12-20T10:12:00-04:00', 'timeZone' => 'America/Toronto', ), 'anyoneCanAddSelf'=>true, 'guestsCanInviteOthers'=>true, );問題我應該如何更改我的代碼,以便它自動工作,這樣我就不需要每年兩次手動更改我的代碼/偏移量?
1 回答

揚帆大魚
TA貢獻1799條經驗 獲得超9個贊
問題是您過度指定了dateTime
參數以包含offset,但您還提供了一個timeZone
參數。在這種情況下,該timeZone
參數與(美國/多倫多在該日期的偏移量 -05:00)中的偏移值沖突dateTime
。
考慮到兩者之間的沖突 - 它選擇使用dateTime
.
事件資源的文檔在屬性中指定end.dateTime
:
時間,作為日期-時間組合值(根據 RFC3339 格式化)。除非在 timeZone 中明確指定時區,否則需要時區偏移量。
(強調已添加)
解決該問題的最簡單方法是從dateTime
您指定的偏移值中刪除并依賴于timeZone
設置。
- 1 回答
- 0 關注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消