谷歌日历供稿,显示时间,日期和事件中的“正常”的格式在浏览器

问题描述:

当下面的代码在它显示像这样的日期和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这是有帮助的,但是,我无法弄清楚如何使它相对于谷歌日历。

+0

看起来你有三个单独的变量,包含你想要的三条信息 - 所以如果你想在不同的HTML结构中输出它们,请修改完成的部分。如果要以不同的方式格式化日期,请首先将它们解析为unix时间戳(使用strtotime或DateTime对象),然后以期望的格式输出它们。 – CBroe

+0

@CBroe,感谢您的参与。我遇到了时间戳方法,但我又走了一条似乎暂时工作的路线。 –

看看Date and Time extension

实施例:

$start = new DateTime($when_atr['startTime']); 

Demo for the same dates

+0

感谢您的输入。你的回答最终帮了我很多。看看我的回答,告诉我你的想法。它似乎以我以后的方式显示日期。感谢您的输入! –

+0

@WoolfFaulkner:np。但是,因为你所做的只是将我的建议复制到你的代码中,所以你不需要回答这个问题。最好的问候 –

+0

我感谢你的帮助。我在使用堆栈和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> 

下列资源是有帮助的:

DateDate and TimeExample @Glavić公布。