2011-05-11 196 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

相关问题