【发布时间】:2019-07-29 12:32:17
【问题描述】:
我有以下显示来自 xml 的数据的脚本。
events.xml
<SchoolCalendar>
<CalendarEvent>
<StartTime>07:30</StartTime>
<Title>test Title 1</Title>
<Location>Room 1</Location>
</CalendarEvent>
<CalendarEvent>
<StartTime>01:10</StartTime>
<Title>test Title 2</Title>
<Location>Room 15</Location>
</CalendarEvent>
<CalendarEvent>
<StartTime>03:30</StartTime>
<Title>test Title 3</Title>
<Location>Room 18</Location>
</CalendarEvent>
<CalendarEvent>
<StartTime>14:30</StartTime>
<Title>test Title 4</Title>
<Location>Room 21</Location>
</CalendarEvent>
<CalendarEvent>
<StartTime>14:30</StartTime>
<Title>test Title 5</Title>
<Location>Room 12</Location>
</CalendarEvent>
<CalendarEvent>
<StartTime>15:30</StartTime>
<Title>test Title 6</Title>
<Location>Room 111</Location>
</CalendarEvent>
php代码:
$today = date("H:i");
$lib = simplexml_load_file("events.xml");
$query = $lib->xpath("/SchoolCalendar/CalendarEvent[StartTime = '14:30']");
if( $query ) {
foreach($query as $node){
echo "<tr>";
echo "<td>$node->StartTime</td>";
echo "<td>$node->Title</td>";
echo "<td>$node->Location</td>";
echo "</tr>";
}
}
else {
}
使用上面的代码,它只会显示 StartTime 为 14:30 的两个事件。如何显示所有未来事件,尝试以下但没有显示。
$query = $lib->xpath("/SchoolCalendar/CalendarEvent[StartTime >= '$today']");
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
遍历所有事件并检查它是
StartTime。 -
从stackoverflow.com/questions/4466494/… 开始,您只能对数字执行 >=,因此您可能需要长时间执行并遍历它们。
标签: php xml datetime xpath simplexml