Php Google Calendar Gdata旧的重复事件已删除事件仍显示,事件ID以Z结尾
我曾尝试用谷歌搜索这个问题,但没有成功,可能是因为搜索字符串“Z”不够具体 背景:Php Google Calendar Gdata旧的重复事件已删除事件仍显示,事件ID以Z结尾,php,zend-framework,gdata,recurring-events,event-id,Php,Zend Framework,Gdata,Recurring Events,Event Id,我曾尝试用谷歌搜索这个问题,但没有成功,可能是因为搜索字符串“Z”不够具体 背景: 使用Google日历Zend gdata库,并一直使用简单代码列出特定时间段内的事件。在这种情况下,2012年2月27日至2012年3月3日。 我列出了许多单项活动,其中有一个重复发生的活动,名为“Rob”,每周一至周五一次。 我使用的基本代码没有任何花哨的添加。然而:) 问题: 当我使用$query->setSingleEvents(TRUE)参数时,一切都按预期工作,并显示了正确的事件 当我谈到“显示”事件时
使用Google日历Zend gdata库,并一直使用简单代码列出特定时间段内的事件。在这种情况下,2012年2月27日至2012年3月3日。 我列出了许多单项活动,其中有一个重复发生的活动,名为“Rob”,每周一至周五一次。
我使用的基本代码没有任何花哨的添加。然而:) 问题:
当我使用
$query->setSingleEvents(TRUE)
参数时,一切都按预期工作,并显示了正确的事件
当我谈到“显示”事件时,我指的是使用Zend gdata显示日历事件的PHP页面。在所有情况下,Google日历GUI都会显示正确的数据(即“Rob”事件不会显示,因为它已被删除 但当我将其设置为
FALSE
时,重复事件“Rob”应该具有要分组的开始时间,但是相反,会显示一些额外的随机事件,没有starttime
,只是相同的标题。即使我删除了重复事件,它仍然会显示在gdata返回的数据中
有趣的观察结果已删除但仍显示在页面上的事件的EventID以“Z”结尾。 它具有通常的eventID,后跟:
\u 20120302T030000Z
我的问题此事件已在Google日历GUI中删除。为什么gdata仍显示已删除的事件,以及eventid以时间戳和Z结尾的意思是什么 解析尝试:
1.尝试将其从定期事件更改为正常事件(删除“系列中所有事件”的定期事件)
运气不好,仍然列出了额外的。
2.删除系列中所有事件的重复事件。
这在
SingleEvents(TRUE)
中再次显示了正确的结果,但在FALSE
中,旧的“Rob”事件在从日历中完全删除后仍会显示
代码:
function outputCalendarByDateRange($client, $startDate='2012-02-27',
$endDate='2012-03-03')
{
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setStartMin($startDate);
$query->setStartMax($endDate);
$query->setSingleEvents(FALSE);
$eventFeed = $gdataCal->getCalendarEventFeed($query);
foreach ($eventFeed as $event) {
echo "Title: " . $event->title->text . "<br />";
echo "Event ID: " . $event->id->text . "<br />";
foreach ($event->when as $when) {
echo "Start: " . $when->startTime . "<br />";
}
echo "<br />";
}
}
函数outputCalendarByDateRange($client,$startDate='2012-02-27',
$endDate='2012-03-03')
{
$gdataCal=新的Zend_Gdata_日历($client);
$query=$gdataCal->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setStartMin($startDate);
$query->setStartMax($endDate);
$query->setSingleEvents(FALSE);
$eventFeed=$gdataCal->getCalendarEventFeed($query);
foreach($eventFeed作为$event){
回显“标题:.”事件->标题->文本。“
”;
回显“事件ID:”.$Event->ID->text。“
”;
foreach($event->when as$when){
回显“开始:.$when->startTime.”
;
}
回声“
”;
}
}
以下是我在
36.5.6.删除事件可以通过调用日历服务的delete()方法并提供编辑命令来删除日历事件
事件的URL或通过调用现有事件自己的delete()方法
无论哪种情况,删除的事件仍将显示在用户的屏幕上
如果提供了updateMin查询参数,则私有事件提要。
删除的事件可以与常规事件区分开来,因为它们
将其事件状态属性设置为
”http://schemas.google.com/g/2005#event.canceled“
在解析提要时,似乎必须测试事件状态
顺便说一句,时间戳分解为年份:2012日:03月:02时间:T小时:分:秒03:00:00祖鲁:Z
Zulu与GMT(格林威治标准时间)或UTC(世界时代码)相同您是否尝试过检查事件状态,如此处所示?:听起来好像有什么东西正在缓存……只是说,我从来没有回到这里来感谢大家的回复。很久以前,我甚至不记得我是如何解决问题的。另外,我不知道回复的原因是因为我没有勾选“电子邮件”框请告诉我我的电子邮件帐户的任何回复。无论如何,我不喜欢寻求帮助,然后不跟进,所以道歉!