特定日期之后所有剩余月份的清单 - PHP

时间:2016-06-03 16:52:17

标签: php date

我需要列出当月15日之后的所有剩余月份。

E.g。如果今天是6月15日,剩下的几个月是7月,8月,9月,10月,11月,12月。

我不想存储月数,在数据库表中分配ID,因为这样效率不高。

我如何在PHP中执行此操作?

到目前为止,我已经接下来给了我当月。

$todaysmonth= date('F');

我是否遵循嵌套的IF?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

从日期获取当前月份编号,然后循环获取月份名称。

$todaysmonth = date('n', strtotime("15 June 2016"));
for($i = $todaysmonth; $i <= 12; $i++){
    $dateObj   = DateTime::createFromFormat('!m', $i);
    echo $monthName = $dateObj->format('F');
}

Working Example

答案 1 :(得分:0)

在这里,我们将使用DatePeriod,它允许在给定时间段内按固定间隔重复的一组日期和时间进行迭代。

所以我们得到了结束日期,有了开始日期,然后计算了间隔。然后循环遍历整个月。

// current date : 20 Feb 2019

 $startDate = new \DateTime('first day of next month');
 $endDate = new \DateTime('1st january next year');

 $interval = new \DateInterval('P1M');
 $period = new \DatePeriod($startDate, $interval, $endDate);

 // Start array with current date
$dates = [];

// Add all remaining dates to array
foreach ($period as $date) {
     array_push($dates, $date->Format('F'));
}

// output
print_r($dates); die;

Array ( [0] => March [1] => April [2] => May [3] => June [4] => July 
[5] => August [6] => September [7] => October [8] => November [9] => 
December )