2016-08-12 57 views
0

對不起,我目前對此部分有問題。我的日期格式爲Y-M-dPhp在特定季度下降

$date1 = '2016-03-1'; 
$date2 = '2016-07-1'; 
$date3 = '2016-10-1'; 
$date4 = '2016-12-1'; 

如果今天是2016年8月12日,應該在下一期落在$ DATE3因爲它。 我試圖使用if條件,但它只落在第一個條件。你可以在這方面給我啓發嗎?

我的代碼是有點像這個

$today = date("2016-07-29"); 
if(strtotime($date1) < strtotime($today)){ 
     $next_accrual_date = $date1; 
     $date_condition = 'condition 1'; 
    }else 
    if(strtotime($date2) < strtotime($today)){ 
     $next_accrual_date = $date2; 
     $date_condition = 'condition 2'; 
    }else 
    if(strtotime($date3) < strtotime($today)){ 
     $next_accrual_date = $date3; 
     $date_condition = 'condition 3'; 
    }else 
    if(strtotime($date4) < strtotime($today)){ 
     $next_accrual_date = $date4; 
     $date_condition = 'condition 4'; 
    } 
echo $next_accrual_date." falls to ".$date_condition; 
+1

請顯示你到目前爲止嘗試過。 –

+0

所以你基本上想選擇4個日期之一,這是最接近當前的一天?你現在的狀況如何? – Rizier123

+0

分享您的完整代碼 – C2486

回答

1

一個做到這一點的方法是

<?php 
$dates = array(); 
$dates[] = '2016-03-1'; 
$dates[] = '2016-07-1'; 
$dates[] = '2016-10-1'; 
$dates[] = '2016-12-1'; 

usort($dates, "cmp"); 

function cmp($a, $b){ 
    return strcmp($a, $b); 
} 

foreach($dates as $date){ 
    if($date > "2016-08-12"){ 
    echo $date; 
    break; 
    } 
} 

//print_r($dates); 

?> 

現場演示:https://eval.in/621460

這會給輸出:

2016-10-1 
1
$today = strtotime(date('Y-m-d')); 

    $currentYear = date('Y'); 
    $dates = ['q1' => strtotime($currentYear.'-03-1'), 
       'q2' => strtotime($currentYear.'-07-1'), 
       'q3' => strtotime($currentYear.'-10-1'), 
       'q4' => strtotime($currentYear.'-12-1')]; 

    foreach ($dates as $qName => $qDate) { 
     if ($qDate > $today) { 
      return "$qDate falls to $qName"; 
     } 
    } 
1

剛剛從<更改比較>:

$today = date("2016-07-29"); 
if(strtotime($date1) > strtotime($today)){ 
    $next_accrual_date = $date1; 
    $date_condition = 'condition 1'; 
}else ... 
echo $next_accrual_date." falls to ".$date_condition; 

,它會工作。目前你看看今天是否比第一季度的日期更大,然後打破這個if。但'2016-03-1'之後的每一個日期都適用於這種情況。這就是爲什麼你總是得到條件1.