2011-05-11 202 views
0

我使用PHP從XML文件輸出數據,特別是輸出爲「20101110」的日期。將XML日期從yyyymmdd更改爲月日,年

我可以使用PHP將其更改爲2011年11月10日?如果是這樣,怎麼樣?

這裏是我的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

謝謝。我用你的日期替換了我的日期,但它一直輸出「1969年12月31日」。任何想法如何我可以解決這個問題? – Ryan 2011-05-11 19:15:16

+0

@Ryan Err ...我想我的代碼示例中有一個錯誤...使用'$ event_date ['date']'代替(請參閱更新的代碼示例)。 – Michael 2011-05-11 19:20:16

+0

@Ryan它正在打印該日期,因爲null或0被傳遞給strtotime(),所以它會輸出紀元的日期。 – Michael 2011-05-11 19:21:58

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

謝謝。我嘗試用$ toRealDate替換「$ event_date ['date']」,但沒有輸出任何日期。你知道我做錯了什麼嗎?再次感謝。 – Ryan 2011-05-11 19:12:13

+0

不,你會'toRealDate($ event_date ['date'])''。 – Ryan 2011-05-11 19:13:42

相關問題