将新项添加到PHP数组中并保存以前的数组大小

时间:2016-05-30 10:46:45

标签: php arrays date

到目前为止,我有以下代码:

$months = array();
$numJoin = date("n",strtotime($me['joinTime']));
$numLast = date('n', strtotime('Dec 31'));
$numCurrent = date("n",strtotime('2016-06-01'));
array_push($months, date("F", strtotime($me['joinTime'])));
for($i = ($numJoin + 1); $i <= $numLast; $i++) {
    if($numCurrent>$numJoin) {
        $dateObj = date_create_from_format('!m', $i);
        array_push($months, $dateObj->format('F'));
    }
    $numCurrent= -1;
}

我在这里尝试做的是将当前月份添加到数组中,然后在数组中保存前几个月,例如:

开始月份是 - &gt;可以 六月踢 - &gt;我将六月添加到数组中(现在我应该在数组中有五月和六月)。

7月开始 - &gt;我将七月添加到数组中(现在我应该在数组中包含五月,六月和七月)。

我怎样才能做到这一点?目前的解决方案仅适用于+1个月..我无法添加超过1个月:/

P.S。只有在新月启动时才应添加新项目,并且应保存数组的先前内容...

2 个答案:

答案 0 :(得分:1)

我们开始,您需要检查您的月份是否小于当月。 Check Online

$months = array();
$num = date("n",strtotime($me['joinTime'])); //join month number
$now = date("n"); //Current month number

for($i = $num; $i <= $now; $i++){
    $dateObj = DateTime::createFromFormat('!m', $i);
    array_push($months, $dateObj->format('F'));
}
print_r($months);

答案 1 :(得分:0)

我仍然有点困惑,但我认为这就是你所追求的......所有月份加入月份之后直到当月......

$me = array('joinTime'=>'2016-03-01');

$dtCurrent = strtotime($me['joinTime']);
$arrMonths = array();
while($dtCurrent < time()) {
    $dtCurrent = strtotime("+1 month",$dtCurrent);
    $arrMonths[] = date('F',$dtCurrent);
}

var_dump($arrMonths);