2011-12-12 45 views
0

我使用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

+1

將您的'substr()'函數移動到設置變量,然後使用'if'確定在迴應變量之前起始值是否需要加倍? –

+0

'如果'是要走的路。謝啦。只需要考慮一下。 – RonnieT

回答

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 />'; 
} 
0

可能:

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

三元?伊克。 –

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 />'; 
+0

另一個三元組。另一個喜歡。 –

+0

就我個人而言,我認爲三元語法非常好 - 簡潔明瞭(假設您不使用嵌套三元語句)。 – TheOx

+0

在我看來,如果很少使用,這很有說服力。他們的工作,但他們很容易搞砸,並在視覺上不容易調試。在那個筆記上,你缺少一個'''或者在那一行上有一個額外的''''。 –