datediff — как отображать месяцы и годы из двух дат в переполнении стека

я имею $date1 = '2014-09-01' а также $date2 = '2015-02-01', Могу ли я получить месяцы и годы от $date1 в $date2 как это:

  • 2014-сентябрь
  • 2014-октябрь
  • 2014-ноябрь
  • 2014-декабрь
  • 2015-январь
  • 2015-февраль

-4

Решение

$date1 = new DateTime("2014-09-01");
$date2 = new DateTime("2015-02-01");

while ($date1 <= $date2) {

echo $date1->format("Y-M")."\n";
$date1->modify("+1 month");
}

Результат:

2014-Sep
2014-Oct
2014-Nov
2014-Dec
2015-Jan
2015-Feb
1

Другие решения

иллюстрировать примерами DateTime объекты и цикл через них:

$date1 = new \DateTime('2014-09-01');
$date2 = new \DateTime('2015-02-01');

while ($date1 <= $date2) {
echo $date1->format('Y-M') . '<br>';
$date1->add(new \DateInterval('P1M')); // increase by one month
}

Результат:

2014-Sep
2014-Oct
2014-Nov
2014-Dec
2015-Jan
2015-Feb
3

использование DateTime а также DateInterval класс с несколькими методами, такими как add () для увеличения счетчика и format () для форматирования даты с использованием простого цикла while

$startDate= new DateTime("2014-09-01");
$endDate = new DateTime("2015-02-01");
$oneMonth=new DateInterval('P1M');      //for 1 month interval

while ($startDate <= $endDate) {
print $startDate->format("Y-M")."\n";  //date formating as your requirement
$startDate->add($oneMonth);          //increment counter by 1 month
}
0