У меня есть простая таблица XML с датами dates.xml
<schedule> <day> <date>01.03.17</date> <dayname>Thursday</dayname> <htime1>2:00</htime1> <htime2>3:00</htime2> </day> <day> <date>02.03.17</date> <dayname>Friday</dayname> <htime1>1:00</htime1> <htime2>4:00</htime2> </day> <day> <date>03.03.17</date> <dayname>Saturday</dayname> <htime1>0:00</htime1> <htime2>7:00</htime2> </day> ... </schedule>
Я хочу загрузить список следующих 10 дней, начиная с текущего дня с сегодняшнего дня. Я нашел способ, чтобы импортировать таблицу XML с помощью simplexml_load.
<?php
$xml=simplexml_load_file("dates.xml");
echo '<li>';
echo $xml->date . "<br>";
echo $xml->dayname . "<br>";
echo $xml->htime1 . "<br>";
echo $xml->htime2;
echo '</li>';
?>
Можно ли начать цикл, начиная с текущего дня? например Сегодня 2 марта. Список должен быть таким:
…
У вас есть идеи, как это сделать?
Спасибо!
Значение, возвращаемое функцией simplexml_load_file, является объектом типа SimpleXMLElement. Эти свойства этого объекта можно просмотреть в цикле. Например, вы должны иметь возможность использовать следующий цикл:
for ($count = 0; $count < count($xml->schedule>day); $count++) {
$date = $xml->schedule->day[$count]['date'];
$dayname = $xml->schedule->day[$count]['dayname'];
$htime2 = $xml->schedule->day[$count]['htime1'];
$htime1 = $xml->schedule->day[$count]['htime2'];
echo '<li>';
echo $date . "<br>";
echo $dayname . "<br>";
echo $htime1 . "<br>";
echo $htime2;
echo '</li>';
}
Я попытался поместить список в цикл и остановить цикл через 10 дней. Это прекрасно работает для меня:
<?php
$xmldata=simplexml_load_file("dates.xml");
$i = 0;
foreach($xmldata->day as $day) {
if($i==10) break;
$i++;
echo "<p>Date: " . $day->date . "</p>";
echo "<p>Dayname: " . $day->dayname . "</p>";
echo "<p>Time 1: " . $day->htime1 . "</p>";
echo "<p>Time 2: " . $day->htime2 . "</p>";
echo "<hr>";
}
?>
Но теперь мне нужно запросить текущую дату, начать цикл со значения «дата» с сегодняшнего дня и продолжить в течение следующих 9 дней.
Таблица XML начинается с 1 марта. Но если это 6 марта, цикл должен пропустить первые 5 дней и начать с 6 марта.