我需要列出当月15日之后的所有剩余月份。
E.g。如果今天是6月15日,剩下的几个月是7月,8月,9月,10月,11月,12月。
我不想存储月数,在数据库表中分配ID,因为这样效率不高。
我如何在PHP中执行此操作?
到目前为止,我已经接下来给了我当月。
$todaysmonth= date('F');
我是否遵循嵌套的IF?或者有更好的方法吗?
答案 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');
}
答案 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 )