字段为空时设置数据值

时间:2011-12-12 05:09:24

标签: php xml parsing xml-parsing simplexml

我正在使用simpleXML解析XML文件,以从以下数据属性中获取日期:

<start_time>2012-01-22 09:00:00</start_time>
<stop_time>2012-03-18 15:00:00</stop_time>

使用:

echo 'Start Date:'.substr("$events->start_time", 0, 10).'<br />';
echo 'End Date:'.substr("$events->stop_time", 0, 10).'<br />';

我的问题是,在某些条目中,没有给出stop_time值,在解析xml时,如果没有任何内容,它会拉0000-00-00。简单来说,这意味着start_timestop_time是xml文件中出现的同一天。

我的问题: 如何为start_time没有给出值的条目设置stop_time作为stop_time值?

3 个答案:

答案 0 :(得分:0)

也许:

echo 'End Date:'.(isset($events->stop_time) ? substr($events->stop_time, 0, 10) : substr($events->start_time, 0, 10)).'<br />';

答案 1 :(得分:0)

如果停止时间为0000-00-00,您可以使用简单的三元组来替换输出和开始时间:

echo 'Start Date:'.substr("$events->start_time", 0, 10).'<br />';
echo 'End Date:'.$events->stop_time == "000-00-00" ? substr("$events->start_time", 0, 10) : substr("$events->stop_time", 0, 10).'<br />';

答案 2 :(得分:0)

因为解析没有为stop_time设置值:

//End Date
if ($enddate = substr("$events->stop_time", 0, 10)) {
    echo '<strong>End Date:</strong>'.substr("$events->stop_time", 0, 10).'<br />';
} else {
    echo '<strong>End Date:</strong>'.substr("$events->start_time", 0, 10).'<br />';
}