我试图能够计算特定场所的特定日期(今天)的总事件。 使用24小时制时间, 我试图在foreach循环中查找当天的最后一个事件,然后当一天的最后一个事件的end_time小于现在时,显示文本“所有安排的事件已经为今天结束”。php count并获得foreach循环中的最后一条记录
我的问题是,xml数据包括所有房间的所有事件14天,我没有得到正确的计数。 我有几个,如果在foreach中的语句以削减下来....
如果XML空间ID ==房间ID,然后 如果XML事件起始日期今天等于,然后 如果($ I $ < numItems的) 如果事件结束时间大于现在, 显示这些事件
我需要记录的计数在满足这些条件......当事件是今天的日期,并在同一个房间作为被通通过roomID网址。 把我的$一个numItems = $计数($ ARR)之前在foreach计算太多记录,并把内部的foreach计数总是返回只算1。
$arr = $this->data['events'];
$numItems = count($arr);
$i = 1;
foreach ($arr as $key => $reservation){
if ((int)$reservation->space_reservation->space_id == $roomID)
{
//test today's date
$resDT = date('m/d/y',strtotime($reservation->reservation_start_dt));
if ($resDT == date('m/d/y'))
{
if ($i < $numItems)
{
$repst = substr($reservation->event_start_dt,11,5);
$repet = substr($reservation->event_end_dt,11,5);
if ((date('H:i',strtotime($repet))) > (date('H:i')))
{
echo '<h2>' .$reservation->event_name. '</h2> ';
echo '<span class="dates">' .date('m/d/y',strtotime($reservation->event_start_dt)). ' </span> ';
echo '<span class="times">' .date('g:i a',strtotime($repst)). ' - ';
echo date('g:i a',strtotime($repet)). '</span> ';
echo '<br />';
} // ends if event end date has passed
//echo '<span style="color:#FFF200;">'.$i.'</span>';
echo '<br />';
}
//if $i equals last record
elseif ($i === $numItems) {
// test if last event ends show
if ((date('g:i a',strtotime($repet))) < (date('g:i: a'))){
echo '<span style="color:#FFF200;">All scheduled meetings/events have concluded for today. </span><br /><br />';
}
}
$i++;
} // ends if
} // ends if
} // ends for each
这是伟大的。谢谢!你有$ unfinishedEventsToday = 0;这是我改变$ unfinishedEvents稍后匹配的代码。 – sloga
@sloga,感谢拿起它,只是修正代码,因此变量名称将匹配:) –