Возврат всех дат между несколькими датами в одном массиве

$start = new DateTime('2013-08-16');
$interval = new DateInterval('P1D');
$end = new DateTime('2013-08-20');
$end->add(new DateInterval('P1D'));
$period = new DatePeriod($start, $interval, $end);

foreach ($period as $date) {
echo $date->format('Y-m-d') . "<br />";
}

Я нашел код выше, чтобы получить все даты между двумя статическими датами.

Я хотел бы получить даты между несколькими парами $start $end. Сценарий состоит в том, чтобы связать переменные ($start, &end) с полями из БД, чтобы создать несколько пар и получить промежуточные даты этих пар в массив.

Является ли это возможным?

Спасибо!

1 ответ

Просто напишите код в функции как

function find_dates_between( $start_date, $end_date) {
$start = new DateTime($start_date);
$interval = new DateInterval('P1D');
$end = new DateTime($end_date);
$end->add(new DateInterval('P1D'));
$period = new DatePeriod($start, $interval, $end);

foreach ($period as $date) {
echo $date->format('Y-m-d') . "<br />";
}
}

После этого просто вызовите функцию

find_dates_between( $start_date, $end_date);

где $start_date и $end_date извлекаются из вашей БД

Другие вопросы по тегам