Php 重复事件的Google日历Url提要不正确

Php 重复事件的Google日历Url提要不正确,php,xml,Php,Xml,我使用以下代码解析Google日历提要中的XML数据: require_once('coreylib/coreylib.php'); $calendar = variable_get('calendar_id_setting'); $now = date('Y/m/d', strtotime('now')); $next_week = date('Y/m/d', strtotime('+7 days')); $api = new clApi('http

我使用以下代码解析Google日历提要中的XML数据:

    require_once('coreylib/coreylib.php');

    $calendar = variable_get('calendar_id_setting');

    $now = date('Y/m/d', strtotime('now'));
    $next_week = date('Y/m/d', strtotime('+7 days'));
    $api = new clApi('http://www.google.com/calendar/feeds/' . $calendar .'/public/full?singleevents=true&min-start=' . $now . '&max-start=' .$next_week);

    if ($feed = $api->parse()) {

        foreach($feed->get('entry') as $entry) {

                  error_log($title . ' ' . strtotime($entry->get('when@startTime')));
问题在错误日志中。我的第一个结果是一个具有正确标题和时间的唯一事件,但以下25个结果都具有相同标题,并且开始时间在2026年(?)


除一个事件外,所有事件都是重复发生的事件。我认为在URL上设置'singleevents=true'可以解决这个问题,但显然不行!这里的正确修复方法是什么?

将您的URL与中的URL进行比较。您正在以
'Y/m/d'
的格式提供参数
min start
max start
。该文档显示了一个带有参数的示例

start-min=2006-03-16T00:00:00&start-max=2006-03-24T23:59:59
注意
start min
start max
的使用,以及
yyyy-MM-dd'HH:MM:ss的格式。考虑到这一点,我怀疑您可以只使用
yyyy-MM-dd
,但您应该遵循该格式,而不是使用斜杠和单位数版本

当然,这并不能完全解释2026年的结果,但使用正确的参数将是一个很好的起点

另外,您可能希望考虑使用和可能的


(注意:虽然我为谷歌工作,并且自己也使用客户端API,但这个答案完全是以个人身份提供的。)

为什么URL中的HTML实体会转义(
&;
)呢?这是我在阅读后添加的。尽管如此,我还是有同样的问题。那就把它拿出来吧?谢谢Jon,请注意PHP时代是H:m:s,不过我现在已经把它整理好了。我不确定我使用的是什么版本,只知道我使用了CoreyLib来解析XML数据。我该如何改变这一点?@RickDonohoe:如果你查看v3文档,你会发现v3 URL以以下内容开头:我会使用$api=new-clApi('.$calendar.'/events?singleevents=true')??这使它自动变成了一个链接并添加了一个分号,但你明白了。@RickDonohoe:我不知道-我没有使用V3API,我也不是PHP开发人员。我建议您查看v3客户端库的文档。