我将 Zend Framework Gdata 用于 Google 日历 API 和 RFC3339 中的日期时间输出(如下所示:2012-01-19T22:00:00.000-08:00)。我需要添加什么 php 代码才能将其转换为 UTC,使其看起来像这样:2012 年 1 月 19 日 8pm-11pm ?我找到了将 RFC 日期转换为字符串的 php 代码,但我对 php 的了解还不够,无法更改代码以使用 Zend Gdata 公式……正如您将在下面的代码中看到的那样,“日期“ 被称为“何时”......所以任何代码都必须以某种方式连接这两个......任何帮助表示赞赏!
<?php
$path = '/home/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
// User whose calendars you want to access
$user = 'my@email.com';
$pass = 'mypassword';
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$service = new Zend_Gdata_Calendar($client);
$query = $service->newEventQuery();
// Set different query parameters
$query->setUser('mycalendarID');
$query->setVisibility('private');
$query->setProjection('full');
$query->setOrderby('starttime');
// Start date from where to get the events
$query->setStartMin('2012-01-01');
// End date
$query->setStartMax('2050-03-15');
// Get the event list
try {
$eventFeed = $service->getCalendarEventFeed($query);
} catch (Zend_Gdata_App_Exception $e) {
echo "Error: " . $e->getMessage();
}
echo "<ul>";
foreach ($eventFeed as $event) {
echo "<tr>";
foreach ($event->when as $when) {
echo "<td>" . $when->startTime . "</td>";
}
echo "<td>" . $event->content . " </td>";
$where=$event->Where;
foreach($where as $eventplace)
{
echo "<td>" . $eventplace . " </td>";
}
}
echo "</tr>";
echo "</ul>";
?>
感谢您提供此信息@vascowhite。
两个问题:
输出结果如下: string(23) "20 January 2012: 06:00"
我正在从我的谷歌日历中提取此信息,并将其输出到我的 html 页面中...我不是通过此 php 创建新事件...所以此代码只是转换了您编写的日期,它没有转换我的谷歌日历事件日期是从这段代码中提取的:
foreach ($event->when as $when) {
echo "<td>" . $when->startTime . "</td>";
}
你知道怎么做吗?
谢谢你,苏珊