为了账号安全,请及时绑定邮箱和手机立即绑定

Google Calendar API时区夏令时和标准时间问题

Google Calendar API时区夏令时和标准时间问题

PHP
长风秋雁 2023-09-22 17:51:58
当我创建一个活动并给出一个临近的日期时,一切都运行良好。但是,当我创建几个月后的事件时,假设它处于夏令时 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设置。


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号