如何构造一个数组,将元素current Quarter作为第一个元素,将接下来的四个Quarter用作下一个元素。
考虑2013年11月27日,
数组应包含以下元素
$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);
}
为了避免每个月都有特殊的大小写并查找它,请通过将月份数除以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()调用中的起始日期,可以使用strtotime()。