<?php
$start = (new DateTime('2010-12-02'))->modify('first day of this month');
$end = (new DateTime('2012-05-06'))->modify('first day of this month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
$months = array();
foreach ($period as $dt) {
$months[] = $dt->format("F Y");
}
print_r($months);
Array
(
[0] => December 2010
[1] => January 2011
[2] => February 2011
[3] => March 2011
[4] => April 2011
[5] => May 2011
[6] => June 2011
[7] => July 2011
[8] => August 2011
[9] => September 2011
[10] => October 2011
[11] => November 2011
[12] => December 2011
[13] => January 2012
[14] => February 2012
[15] => March 2012
[16] => April 2012
)
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Array
(
[0] => December 2010
[1] => January 2011
[2] => February 2011
[3] => March 2011
[4] => April 2011
[5] => May 2011
[6] => June 2011
[7] => July 2011
[8] => August 2011
[9] => September 2011
[10] => October 2011
[11] => November 2011
[12] => December 2011
[13] => January 2012
[14] => February 2012
[15] => March 2012
[16] => April 2012
)