Перечисление месяцев между двумя датами
В различных приложениях возникает необходимость перечислять или перебирать месяцы в пределах указанного диапазона дат. Для этого мы представляем два решения на PHP, предназначенные для разных версий PHP.
PHP 5.3 и более поздних версий
$start = new DateTime('2010-12-02');
$start->modify('first day of this month');
$end = new DateTime('2012-05-06');
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("Y-m") . "
\n";
}
PHP 5.4 или новее
$start = (new DateTime('2010-12-02'))->modify('first day of this month');
$end = (new DateTime('2012-05-06'))->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("Y-m") . "
\n";
}
Обратите внимание, что изменение дат начала и окончания на первый день каждого месяца обеспечивает полный список нужных месяцев, предотвращая случаи, когда февраль может быть пропущен, если текущий день превышает последний день.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3