2011-05-11 3 views
0

Я использую PHP для вывода данных из XML-файла, в частности даты, которая выводится как «20101110».Изменить дату XML с yyyymmdd на месяц День, год

Могу ли я использовать PHP, чтобы изменить его до 10 ноября 2011 года? Если да, то как?

Вот мой page и код:

$file = 'http://www.gostanford.com/data/xml/events/m-baskbl/2010/index.xml'; 
    $xml = simplexml_load_file($file); 

    foreach($xml as $event_date){ 
     if(!empty($event_date->event['vn']) && !empty($event_date->event['hn']) && !empty($event_date->event['vs']) && !empty($event_date->event['hs'])) 
     { 
      echo '<li>'; 
       echo '<h3>', $event_date->event['vn'], ' vs ', $event_date->event['hn'], '</h3>'; 
       echo '<p><strong>', $event_date->event['vs'], ' - ', $event_date->event['hs'], '</strong></p>'; 
       echo '<p>', $event_date['date'], '</p>'; 
       echo '<p>', $event_date->event['local_time'], '</p>'; 
      echo '</li>'; 
     } 
    } 

Спасибо за вашу помощь!

ответ

1

Вы можете использовать функцию date(), в сочетании с функцией strtotime():

echo date('F j, Y', strtotime($event_date['date'])); 
+0

спасибо. Я заменил свою строку даты твоей, но она продолжает выводить «31 декабря 1969 года». Любая идея, как я могу это исправить? – Ryan

+0

@Ryan Err ... Я предполагаю, что в моем примере кода была ошибка ... вместо этого используйте '$ event_date ['date']' (см. Обновленный образец кода). – Michael

+0

@Ryan Он печатает эту дату, потому что null или 0 передается в strtotime(), поэтому он выводит дату эпохи. – Michael

1

Конечно, вот пример функции:

function toRealDate($str) { 
    $year = substr($str, 0, 4); 
    $month = substr($str, 4, 2); 
    $day = substr($str, 6, 2); 
    $months = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 
    return $months[(int)$month - 1] . ' ' . (int)$day . ', ' . $year; 
} 
+0

спасибо. Я попытался заменить «$ event_date ['date»] на $ toRealDate, но не дал никакой даты. Вы знаете, что я делаю неправильно? Еще раз спасибо. – Ryan

+0

Нет, вы должны сделать 'toRealDate ($ event_date ['date'])'. – Ryan

Смежные вопросы