2016-01-05 53 views
0

我有一個在不同日期開始和開始的活動列表。爲未來日期添加當前課程

  1. 04.12.2015-03.01.2016
  2. 08.01.2016-14.02.2016
  3. 26.02.2016-27.03.2016

而且我有一段代碼,增加了一個如果某個事件在某個日期之間,則爲當前事件類。

$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

我想這是你想要的東西:

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 '';  
     } 
    } 
} 
+0

差不多,但這裏的問題是,它也增加了當前事件類的所有未來事件。我沒有認識到我只想把它加入到單一的未來事件中。 – r1987

+0

我雖然有辦法做到這一點,檢查它是否適合你。 –