如何获得当前和即将到来的日期?

时间:2017-01-29 12:04:16

标签: php

如何从当前月/年开始连续获取月/年的列表。即2017年1月,2017年2月,2017年3月,2017年4月等。列表可以是任何长度(jan到oct,jan到dec等)。

P.S。没有开始和结束日期范围。

2 个答案:

答案 0 :(得分:1)

您可以通过传递长度来创建一个生成此列表的函数。以下是可能对您有帮助的示例代码。

在这个例子中,1 = jan,12 = dec

$list = getList(01,02);
print_r($list);
function getList($from,$to)
{   
 $res = array();
 for($i=$from;$i<=$to;$i++)
 {
    $res[] = date('M Y',strtotime('2017'.'-'.$i));
 }
 return $res;
}

答案 1 :(得分:1)

这是一种可能的解决方案,使用间隔:

function getList($n) {
    $now=new DateTime();
    $myDate=new DateTime($now->format('Y-m-1'));
    $interval=new DateInterval('P1M');
    $result=[];
    for ($i=0; $i<$n; ++$i) {
        $result[]=$myDate->format('M Y');
        $myDate->add($interval);
    }
    return $result;
}

它创建一个指向当前月份第一天的日期,并在每个周期后向其添加一个月。