Я пытался найти в Google этот вопрос, но безуспешно, возможно, из-за недостаточно точной строки поиска "Z".
Справочная информация:
Используя Google Calendar Zend gdata library, и использовали простой код для составления списка событий за определенный период времени. В этом случае с 27-02-2012 по 03-03-2012.
У меня было несколько отдельных событий, с одним повторяющимся событием под названием «Роб», понедельник-понедельник.
Я использую основной код без каких-либо модных дополнений. пока:)
Проблема:
когда я использовал параметр $query->setSingleEvents(TRUE)
, все работало как положено и показывало правильные события.
Когда я говорю о «показе» событий, я говорю о странице PHP, которая использует Zend gdata для отображения событий календаря.
Во всех ситуациях графический пользовательский интерфейс Календаря Google показывает правильные данные (т. Е. Событие «Роб» не отображается, поскольку оно было удалено.
Но когда я установил это значение на FALSE
, повторяющееся событие «Роб» должно иметь время начала, которое должно быть сгруппировано, но вместо этого несколько дополнительных случайных событий отображаются без starttime
, точно так же заглавие. Даже после того, как я удалил повторяющееся событие, оно все равно отображается в данных, возвращаемых gdata.
Интересное наблюдение
EventID для события, которое было удалено, но все еще отображается на странице, заканчивается буквой «Z».
Он имеет обычный идентификатор события, за которым следует: _20120302T030000Z
Мой вопрос
Это событие было удалено в графическом интерфейсе Google Calendar. Почему gdata по-прежнему показывает событие, которое было удалено, и что означает вечер, заканчивающийся меткой времени и Z.
Разрешение попытки:
1. Попытался изменить его с повторяющегося события на обычное событие (удалив повторение «для всех событий в серии»
Не повезло, в списке еще есть дополнительные.
2. полностью удалил повторяющееся событие для всех событий в серии.
Это снова показало правильные результаты в SingleEvents(TRUE)
, но в FALSE
старое событие «Роб» все еще отображается, когда оно полностью удалено из календаря.
Код:
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 />";
}
}