我正在尝试使用CAML查询获取未来12个月内特定视图的所有日历事件。我正在使用PHP SoapClient来执行此操作。这是我的代码;
$query = "<Query>
<Where>
<DateRangesOverlap>
<FieldRef Name='EventDate' />
<FieldRef Name='EndDate' /><FieldRef Name='RecurrenceID' />
<Value Type='DateTime'><Year /></Value>
</DateRangesOverlap>
</Where>
<OrderBy><FieldRef Name='EventDate' /></OrderBy>
</Query>";
$query_options = "<QueryOptions>
<RecurrencePatternXMLVersion>v3</RecurrencePatternXMLVersion>
<ExpandRecurrence>TRUE</ExpandRecurrence>
<CalendarDate>2013-01-01T12:00:00Z</CalendarDate>
</QueryOptions>";
$soapClient = new SoapClient($wsdl, $authParams);
$params = array('listName' => $list_name, 'viewName' => $view_name, 'rowLimit' => $row_limit, "query" => $query, "query_options" => $query_options);
$rawXMLresponse = $soapClient->GetListItems($params)->GetListItemsResult->any;
结果将从正确的视图中提取,但它将从列表开头(2012年9月)到最后一个事件(2013年7月)返回所有事件。无论我是否更改'CalendarDate'或将DateTime值更改为'Month',它仍然会给我相同的结果。当然这个查询应该只获取DateTime期间的事件吗?
非常感谢任何帮助!