查找当天和下四季度的一年中的季度

时间:2013-11-27 15:28:06

标签: php datetime

如何构造一个数组,其元素当前为Quarter作为第一个元素,接下来的四个四分之一作为下一个元素。

考虑一下27-Nov-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);

} 

1 个答案:

答案 0 :(得分: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);

如果下一季度是新年的开始,我们会增加$ year(使用模运算符时会给出0)。如果要在顶部的date()调用中更改startdate,可以使用strtotime()。