始终使用 API 添加到 Google 日历的事件

问题描述 投票:0回答:1

我实现了与 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

我在这里做错了什么?我怎样才能让日历显示我发送事件的时间?

php api google-calendar-api
1个回答
0
投票

您只需要指定时区而不更改开始/结束时间:

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 开始。

© www.soinside.com 2019 - 2024. All rights reserved.