2017-02-17 1 views
0

で開始私は、日付とシンプルなXMLテーブルdates.xmlXMLファイルをロードします。現在の日

<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日間のロードリストにしたいを持っています。私はsimplexml_loadを使ってxml-tableをインポートする方法を見つけました。

<?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>'; 
?> 

当日からループを開始することはできますか?例えば今日は3月2日です。リストは次のようにする必要があります:

  • 02.03.17
  • 04.03金曜日 1時 四時
  • 03.03.17 土曜日 1時 4時00分.17 日曜日 1:00 4:00
  • ...

    どうすればよいですか? ありがとうございました!

    答えて

    1

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

    こんにちはナディール、ご協力いただきありがとうございます。 – Filip

    0

    リストをループに入れて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テーブルは、3月1日から始まります。しかし、3月6日であれば、ループは最初の5日間をスキップし、3月6日から開始する必要があります。

    関連する問題