Установка значения для данных, когда поле не заполнено - PullRequest
0 голосов
/ 12 декабря 2011

Я анализирую XML-файл, используя simpleXML, чтобы получить даты из следующих атрибутов данных:

<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_time и stop_time - это один и тот же день, когда это происходит в XML-файле.

Мой вопрос: Как установить start_time в качестве значения stop_time для записей без значения для stop_time?

Ответы [ 3 ]

0 голосов
/ 12 декабря 2011

Вы можете использовать простую троичную перемену, чтобы заменить выходное время временем начала, если время остановки составляет 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 голосов
/ 13 декабря 2011

Пошло с этим, так как анализ не установил значение для 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 голосов
/ 12 декабря 2011

возможно:

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