我实现了与 Google Calendar 的这种集成(使用用于 PHP 的 google API SDK),我们系统中的一些事件使用 API 发送到 Calendar
我已经让它工作了,除了一件事:事件总是以错误的时间出现在日历中,对于我发送的任何日期/时间总是 -3 小时
我的日历设置为圣保罗时区,即 GMT-3,所以它看起来像是在转换时间。但我不想那样,我已经发送了正确的时间,而且无论我如何发送日期时间都完成了
我试过了,例如:
Array
(
[summary] => test
[location] => test
[description] => test
[start] => Array
(
[dateTime] => 2023-03-30T00:00:00+00:00
)
[end] => Array
(
[dateTime] => 2023-03-31T23:59:59+00:00
)
)
还有(时区应用于日期时间):
Array
(
[summary] => test
[location] => test
[description] => test
[start] => Array
(
[dateTime] => 2023-03-29T21:00:00-03:00
)
[end] => Array
(
[dateTime] => 2023-03-31T20:59:59-03:00
)
)
同时发送时区:
Array
(
[summary] => test
[location] => test
[description] => test
[start] => Array
(
[dateTime] => 2023-03-30T00:00:00+00:00
)
[end] => Array
(
[dateTime] => 2023-03-31T23:59:59+00:00
)
)
最后,两者:
Array
(
[summary] => test
[location] => test
[description] => test
[start] => Array
(
[dateTime] => 2023-03-29T21:00:00-03:00
[timeZone] => America/Sao_Paulo
)
[end] => Array
(
[dateTime] => 2023-03-31T20:59:59-03:00
[timeZone] => America/Sao_Paulo
)
)
没什么区别:当我查看日历时,事件将始终在:
March 29, 2023, 9:00pm – March 31, 2023, 8:59pm
我在这里做错了什么?我怎样才能让日历显示我发送事件的时间?
您只需要指定时区而不更改开始/结束时间:
Array
(
[summary] => test
[location] => test
[description] => test
[start] => Array
(
[dateTime] => 2023-03-30T00:00:00-03:00
)
[end] => Array
(
[dateTime] => 2023-03-31T23:59:59-03:00
)
)
这样 GMT-3 America/Sao_Paulo 的日历将看到事件从 30/03 0 开始。