Загрузите файл XML. Начать с текущего дня

У меня есть простая таблица 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 марта. Список должен быть таким:

  • 02.03.17
    пятница
    1:00
    4:00
  • 03.03.17
    суббота
    1:00
    4:00
  • 04.03.17
    Воскресенье
    1:00
    4:00
  • У вас есть идеи, как это сделать?
    Спасибо!

    0

    Решение

    Значение, возвращаемое функцией 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>';
    }
    
    1

    Другие решения

    Я попытался поместить список в цикл и остановить цикл через 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 марта.

    0

    По вопросам рекламы ammmcru@yandex.ru
    Adblock
    detector