PHP Вывести период даты "с" - "по" через запятую каждый день
Может у кто то знает функцию или уже писал такую, стоит задача ввести период даты например указываем в форме дату с 2021-03-23 по 2021-03-26, ее нужно вывести в формате 23 March 2021, 24 March 2021, 25 March 2021, 26 March 2021 через запятую.
Я предполагаю, нужно использовать date_parse_from_format() разобрать и циклом сделать перебор, но блин много условностей, например в январе может быть 28 так и 29 дней, а в каких-то месяцах не 30 а 31 (с этим проще) но все же )))
Может кто то делал такую задачку и есть уже готовое решение? Я пока в рунете не наткнулся, пошел искать в интерсеть.
Ответы (1 шт):
Автор решения: mepihindeveloper
→ Ссылка
/**
* Creating date collection between two dates
*
* <code>
* <?php
* # Example 1
* date_range("2014-01-01", "2014-01-20", "+1 day", "m/d/Y");
*
* # Example 2. you can use even time
* date_range("01:00:00", "23:00:00", "+1 hour", "H:i:s");
* </code>
*
* @author Ali OYGUR <[email protected]>
* @param string since any date, time or datetime format
* @param string until any date, time or datetime format
* @param string step
* @param string date of output format
* @return array
*/
function date_range($first, $last, $step = '+1 day', $output_format = 'd/m/Y' ) {
$dates = [];
$current = strtotime($first);
$last = strtotime($last);
while($current <= $last) {
$dates[] = date($output_format, $current);
$current = strtotime($step, $current);
}
return $dates;
}
Источник: PHP: вернуть все даты между двумя датами в массиве