2016-02-18 67 views
1

我有一個事件列表循環,其中我從事件的日期和今天的日期變量。有一個必需的$ maindate,但也有同一個事件$ otherdates的其他日期,它比main晚。 我想設置在單獨變量中設置的最新日期,並將其與今天的日期進行比較,以使if($ compareate> = $ today)僅控制未來事件的列表。比較變量,並設置第一個有價值

這裏是我的變量:

$maindate = DateTime::createFromFormat('Ymd', get_field('date')); 
    $otherdates1 = DateTime::createFromFormat('Ymd', get_field('other_dates')); 
    $otherdates2 = DateTime::createFromFormat('Ymd', get_field('other_dates_2')); 
    $otherdates3 = DateTime::createFromFormat('Ymd', get_field('other_dates_3')); 
    $today = DateTime::createFromFormat('Ymd', date('Ymd')); 

/* I need to set up the first available variable here */  
$comparedate = $otherdates3 || $otherdates2 || $otherdates1 || $maindate; 

if ($comparedate >= $today) : 

/* list the future events */ 

我怎樣才能讓這種比較?

+1

或許這分鐘()或最大()可以是有用的:$ comparedate =分鐘($ otherdate3,$ otherdate2,$ otherdate1,$ maindate); – Ianis

+0

感謝您指出這一點,它實際上是最大的,正確的語法是:$ compareate = max($ maindate,$ otherdates1,$ otherdates2,$ otherdates3); – Gas

回答

1
$lastestDate = null; 
$datesSet = [$maindate, $otherdates1, $otherdates2, $otherdates3]; 
foreach($datesSet as $date) { 
    if($lastestDate == null || $lastestDate->getTimeStamp() < $date->getTimeStamp()) 
      $lastestDate = $date; 
} 
$comparedate = $lastestDate; 
+0

對不起,它不起作用。我發現上面評論的max()比較確實如此。謝謝你的時間。 – Gas

0

正如指出的Ianis,我不得不通過比較PHP最大運營商的變量,if語句獲取最新的日期這樣的。

該變量是:

$comparedate = max($maindate, $otherdates1, $otherdates2, $otherdates3);