我有一个在不同日期开始和开始的事件列表。
我有一段代码,如果在某些日期之间为单个事件添加了当前事件类。
$startDate = get_post_meta('_event_start_date', true);
$endDate = get_post_meta('_event_end_date', true);
$currentDate = current_time( 'mysql' );
if ( ($currentDate > $startDate) && ($currentDate < $endDate) ) {
return 'current-event';
} else {
return '';
}
这一切都很好并且可以完成它的工作,但我遇到的是两个事件之间没有任何比较日期。例如,如果今天的日期是1月5日,而下一个事件是从1月8日开始,则它不会将当前事件类添加到将来的事件中。我想我必须在代码中添加另一个elseif语句,但我应该将它与什么进行比较?
只是为了说明这里的情况,我想为只有一个未来事件添加当前事件类。
答案 0 :(得分:0)
我认为这就是你想要的:
if ( ($currentDate > $startDate) && ($currentDate < $endDate) ) {
return 'current-event';
} else if($currentDate < $startDate) {
return 'current-event';
} else {
return '';
}
//版本2:
$startDate = get_post_meta('_event_start_date', true);
$endDate = get_post_meta('_event_end_date', true);
$currentDate = current_time( 'mysql' );
$startDays = array(); //assign your start days to this array & sort it as well
if ( ($currentDate > $startDate) && ($currentDate < $endDate) ) {
return 'current-event';
} else {
foreach($startDays as $day)
{
if($currentDate < $day)
{
/*
this will return current event for the exactly next event (and not for the other next events).
but make sure to sort the dates in the start days array.
*/
return 'current-event';
break;
}else
{
return '';
}
}
}