データを取得する必要がある XML ドキュメントがあります。基本的にスケジュールを組んでいます。変数 $timeToFind が既にあり、"7:00am" から "10:00pm" まで 30 分ずつインクリメントしています。イベントの時間の長さを計算する方法もあります。
月曜日 (mon) にイベントが見つかったかどうかを $timeToFind で確認する方法を使用する必要があります。見つかった場合は、時刻とタイプを含む div をエコーし、そうでない場合は空の div をエコーします。
$xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?>
<schedule>
<about>
<name>Person 1</name>
</about>
<daily>
<mon>
<event type="work" start="8:00am" end="12:00pm">
<title>Work at McDonalds</title>
<description>Go to work and get free food.</description>
</event>
<event type="classs" start="12:30pm" end="2:30pm">
<title>English Class</title>
<description>Go to English class in Room 219.</description>
</event>
</mon>
</daily>
</schedule>');
$dayStart = 7;
$dayEnd = 22.5;
$hoursInDay = $dayEnd - $dayStart;
for ($i=$dayStart; $i<=$dayEnd; $i+=.5) {
// if it happens to be 1:00 (13), keep the $current variable non-military
if($i >= 13){
$current = $i-12;
}else {
$current = $i;
}
// $i >= 12, then it's PM, else AM
if($i >= 12){
$timeToFind = $timeToFind . "pm";
}else {
$timeToFind = $timeToFind . "am";
}
$nodes = $xml->xpath(sprintf('/mon/event[@type="%s"]', $timeToFind));
if (!empty($nodes)) {
printf('Time "%s" found!! <br> ', $timeToFind);
} else {
printf('Time "%s" Not found. <br> ', $timeToFind);
}
}