如何仅针对特定日期而非日期范围获取Google日历活动

时间:2018-01-11 12:34:28

标签: php codeigniter google-calendar-api

我正在使用Google Calendar API V3来获取PHP中的Google日历活动(Codeigniter)。现在我想从特定日期(不是按日期范围)获取所有事件。

我尝试了选项' timeMin'并在RFC3339时间戳中传递日期,但它返回错误的结果。

我的代码是:

$optParams['syncToken'] = $next_sync_token;
$optParams['timeMin'] = date("c", strtotime(date('Y-m-d H:i:s').'-3 days'));
$service->events->listEvents($calendarId, $optParams);

任何人都可以建议我如何从特定日期获取活动吗?

2 个答案:

答案 0 :(得分:1)

我认为你可以将timeMax参数设置为高1天(因为它是一个独占界限)。然后你的有效范围为1天。像

这样的东西
$optParams['timeMin'] = date("c", strtotime(date('Y-m-d H:i:s').'-3 days'));
$optParams['timeMax'] = date("c", strtotime(date('Y-m-d H:i:s').'-2 days'));

请参阅https://developers.google.com/google-apps/calendar/v3/reference/events/list

上的可用参数

答案 1 :(得分:0)

您可能需要在optParams中添加单个events = true才能让timeMin工作,因为这会将所有重复事件视为单个事件。 所以,

using (DirectoryEntry Connection = new DirectoryEntry("LDAP://" + currentGroupDN))
{
    foreach (DataRow row in action.Rows)
    {
        var dn = row["dn"].ToString();
        if (!string.IsNullOrEmpty(dn))
        {
            if (row["Action"].ToString().ToUpper() == "ADD")
            {
                Connection.Properties["member"].Add(dn);
            }
            else if (row["Action"].ToString().ToUpper() == "REMOVE")
            {
                Connection.Properties["member"].Remove(dn);
            }
        }
    }
    Connection.CommitChanges();
}