Нужна помощь в форматировании даты Unix из вывода XML.

#facebook #unix #date #replace

#Facebook #unix #Дата #заменить

Вопрос:

У меня есть канал событий из facebook, который выводит данные в формате XML. Я думаю, что даты / время указаны в формате эпохи (unix). Вот так:

  <start_time>1319506200</start_time><end_time>1319511600</end_time>
  

Это динамическая информация (события, созданные страницей facebook).

Я использую php file_get_contents для размещения вывода xml в моем html.

Как я могу преобразовать даты unix в удобный для пользователя формат? Я в полной растерянности.

Комментарии:

1. php.net/manual/en/function.date.php

Ответ №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. Прошу прощения за незнание, но как мне извлечь значение? Я понимаю концепцию строки даты, но как извлечь временную метку, чтобы передать ее через php?

2. Спасибо — я посмотрю, что я могу придумать — я еще не совсем понимаю php 🙂 Я едва справляюсь с CSS и HTML, lol

Ответ №2:

Наконец-то разобрался с этим! 🙂 Уууу! (кстати, изменен с XML-канала на json-канал) Это то, что в итоге сработало:

    $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 "amp;nbsp;-amp;nbsp;"; 
echo "{$end_date}n";
echo "<br>"; 
echo "{$json_output2->description}n";
echo "<br>Where: "; 
echo "{$json_output2->location}n";
echo "<br><br>";
 }
 ?>