2013-11-27 96 views
0

如何構建一個數組,當前季度爲第一個元素,接下來的四個季度爲下一個元素。當前和今後四個季度的當年季度結果

考慮在今年27 - 11月13,
數組應該包含內容如下

$ac_quarters = array (AC4-13,AC1-14,AC2-14,AC3-14,AC4-14); 

請把我當成新手PHP編程。 目前我編寫的代碼如下所示。肯定會有比這更好的邏輯。

$date = "2013-1-13"; 
$d = date_parse_from_format("Y-m-d", $date); 

if ($d["month"]==1 || $d["month"]==2 || $d["month"]==3) { 
    $ac_quarters = array (AC1-13,AC2-13,AC3-13,AC4-13,AC1-14); 

} 
+2

即使新手也可以在尋求幫助之前嘗試*某些東西。告訴我們你試過的東西。 –

+0

php手冊上的結帳日期( – Adsy2010

+0

@JohnConde,請參閱編輯 – JakeNsmith

回答

2

爲了避免特殊外殼每個月,看着它,找出你目前除以月份數3,然後通過四個季度提前迭代是哪一個季度。

$current = floor((date('n') - 1)/3); 

$year = date('y'); 
$quarters = array(); 

for ($i = 0; $i < 5; $i++) 
{ 
    $q = (($current+$i)%4) + 1; 
    $quarters[] = "AC" . $q . "-" . $year; 

    if (($current+$i+1)%4 == 0) 
    { 
     $year++; 
    } 
} 

var_dump($quarters); 

如果下一個季度是新年的開始(當使用模運算符時它會給我們0),我們增加$ year。如果要更改頂部的date()調用中的startdate,可以使用strtotime()。

+0

25.03.2016顯示「AC2-16」==錯誤 –

+0

@ xcy7e웃您是如何在上面的示例中輸入「25.03.2016」的?它只是從今天的日期開始迭代,並輸出當前的+下個季度。沒有任何東西可以解析日期來輸出內容。如果你正在談論'strtotime'行,請記住你必須將它添加到*日期調用中,而不僅僅是第一次。 – MatsLindh

+0

我將日期字符串添加到「日期」 - 函數作爲第二個參數strtotime()。 –

相關問題