我有来自facebook的事件源,以XML格式输出数据。我想,日期/时间是epoch(unix)格式。像这样:
<start_time>1319506200</start_time><end_time>1319511600</end_time>
这是动态信息(由facebook页面创建的事件)。
我使用php file_get_contents将xml输出放在我的html中。
我如何将unix日期转换为用户友好格式?我完全失去了。
答案 0 :(得分:1)
只需使用string date ( string $format [, int $timestamp = time() ] )
从xml字符串中提取时间戳值并将其作为参数#2传递到日期,作为参数#1,您应该提供首选格式字符串,例如'Y-m-d T:i:s'
提取时间戳可能看起来像这样: 鉴于您将事件订阅源输出数据存储在字符串中,在本例中为$ xmlstr
$facebooksomething = new SimpleXMLElement($xmlstr);
date('Y-m-d T:i:s', $facebooksomething->starttime);
答案 1 :(得分:1)
终于搞清楚了! :)哇哦! (顺便说一下,从xml feed改为json feed)这就是最终的工作:
$start_date = date('F j, Y, g:i a', strtotime($json_output2->start_time));
$end_date = date('g:i a', strtotime($json_output2->end_time));
这是我的完整代码:
<?php
$jsonurl = "https://graph.facebook.com/PAGEID/events?access_token=MYYOKEN";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);
foreach ( $json_output->data as $data)
{
$jsonurl2 = "https://graph.facebook.com/$data->id/";
$json2 = file_get_contents($jsonurl2,0,null,null);
$json_output2 = json_decode($json2);
$start_date = date('F j, Y, g:i a', strtotime($json_output2->start_time));
$end_date = date('g:i a', strtotime($json_output2->end_time));
echo "{$json_output2->name}\n";
echo "<br>";
echo "{$start_date}\n";
echo " - ";
echo "{$end_date}\n";
echo "<br>";
echo "{$json_output2->description}\n";
echo "<br>Where: ";
echo "{$json_output2->location}\n";
echo "<br><br>";
}
?>