2

我正在尝试使用 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 期间的事件?

任何帮助将非常感激!

4

0 回答 0