到目前为止,我有以下代码:
$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。只有在新月启动时才应添加新项目,并且应保存数组的先前内容...
答案 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);