谷歌日历供稿,显示时间,日期和事件中的“正常”的格式在浏览器
当下面的代码在它显示像这样的日期和EVET浏览器中运行:谷歌日历供稿,显示时间,日期和事件中的“正常”的格式在浏览器
2013-10-30T05: 30:00.000-07:00 - 2013-10-30T06:30:00.000-07:00 Envent 2
2013-10-29T23:00:00.000-07:00 - 2013-10-30T00:00:00.000 -07:00事件1
我希望能够将日期,时间和事件分离成他们自己的可编辑ID,但不知道如何将参数定位到每。
例如,它会看起来更象这样:
事件2 - 二〇一三年十月三十○日,下午5:30至6:30 PM
事件1 - 2013年10月29日,下午11:00至12 00:00
验证码:
$email = "yourEmail";
//your calendar has to be made public under calendar settings
$url = "http://www.google.com/calendar/feeds/".$email."/public/full";
$xml = file_get_contents($url);
$feed = simplexml_load_string($xml);
$ns=$feed->getNameSpaces(true);
foreach ($feed->entry as $entry) {
$when=$entry->children($ns["gd"]);
$when_atr=$when->when[0]->attributes();
$start=$when_atr['startTime'];
$end=$when_atr['endTime'];
$title=$entry->title;
echo "<p>".$title." ".$start." - ".$end."</p>";
}
我发现这个article这是有帮助的,但是,我无法弄清楚如何使它相对于谷歌日历。
实施例:
$start = new DateTime($when_atr['startTime']);
感谢您的输入。你的回答最终帮了我很多。看看我的回答,告诉我你的想法。它似乎以我以后的方式显示日期。感谢您的输入! –
@WoolfFaulkner:np。但是,因为你所做的只是将我的建议复制到你的代码中,所以你不需要回答这个问题。最好的问候 –
我感谢你的帮助。我在使用堆栈和PHP方面有点新,而当其他用户发布解决方案时,我发现它很有用。因此,我正在发布这一个。另外,我想指出,尽管你的方法很有帮助,但这不是直接的解决方案,还需要做更多的工作来解决我最初提出的问题。谢谢你指出我朝着正确的方向。 –
经过一些研究和在这个线程中的帮助,我得到了这个答案!
的PHP
<?php
$email = "your public calendar address email";
$url = "http://www.google.com/calendar/feeds/".$email."/public/full";
$xml = file_get_contents($url);
$feed = simplexml_load_string($xml);
$ns=$feed->getNameSpaces(true);
foreach ($feed->entry as $entry) {
$when=$entry->children($ns["gd"]);
$when_atr=$when->when[0]->attributes();
$title=$entry->title;
echo "<div class='eventTitle'>".$title . "</div>";
$start = new DateTime($when_atr['startTime']);
echo "<div class='eventTime'>".$start->format('D F jS, g:ia') . " to ";
$end = new DateTime($when_atr['endTime']);
echo $end->format('g:ia')."</div>" . '<br />' ;
}
?>
的CSS
<style>
.eventTime {
color:#0CF;
}
.eventTitle {
color:#0FC;
}
</style>
下列资源是有帮助的:
Date,Date and Time和Example @Glavić公布。
看起来你有三个单独的变量,包含你想要的三条信息 - 所以如果你想在不同的HTML结构中输出它们,请修改完成的部分。如果要以不同的方式格式化日期,请首先将它们解析为unix时间戳(使用strtotime或DateTime对象),然后以期望的格式输出它们。 – CBroe
@CBroe,感谢您的参与。我遇到了时间戳方法,但我又走了一条似乎暂时工作的路线。 –