我正在尝试使用 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 期间的事件?
任何帮助将非常感激!