я имею $date1 = '2014-09-01'
а также $date2 = '2015-02-01'
, Могу ли я получить месяцы и годы от $date1
в $date2
как это:
$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
иллюстрировать примерами 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
использование 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
}