SimpleXML解析对字符串有奇怪的影响

时间:2014-04-12 14:57:21

标签: php xml substring

我想在

上使用13:00获取13:50new SimpleXMLElement()
<time>
    <start_time>01:00PM</start_time>
    <end_time>01:50</end_time>
</time>

我试过了:

$stime = $some_child_element->start_time;
$etime = $some_child_element->end_time;
if($stime[strlen($stime)-2] == 'P') {
    $stime = (substr($stime,0,2)+12) . substr($stime,2,3);
    $etime = (substr($etime,0,2)+12) . substr($etime,2,3);
}
else
    $stime = substr($stime,0,5);

echo $stime;

但它没有做任何事情。然后我试着用(string)value施放时间,但仍然没有。 echostrlen工作,但类似数组的访问和子字符串不起作用,它既不会显示任何内容,也不会显示任何错误......

编辑:这里的问题不仅是如何使其成为日期时间,而且还包括我如何访问此字符串的较小集合。子串不起作用,$time[0]

查看此演示: http://codepad.viper-7.com/vdmlVQ

2 个答案:

答案 0 :(得分:1)

你使这个很多比它需要的更复杂。只需使用PHP的内置日期/时间功能为您进行转换:

$time = $some_child_element->time;
echo date('H:i', strtotime($time));

Demo

答案 1 :(得分:0)

问题是当将元素转换为字符串时,实际字符串从位置1开始。非常奇怪...请参阅下面的演示

Demo