为将来的日期添加当前类

时间:2016-01-05 07:58:19

标签: php

我有一个在不同日期开始和开始的事件列表。

  1. 04.12.2015-03.01.2016
  2. 08.01.2016-14.02.2016
  3. 26.02.2016-27.03.2016
  4. 我有一段代码,如果在某些日期之间为单个事件添加了当前事件类。

    $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语句,但我应该将它与什么进行比较?

    只是为了说明这里的情况,我想为只有一个未来事件添加当前事件类。

1 个答案:

答案 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 '';    
        }
    }
}