Чтобы получить все дни между двумя датами в PHP, вы можете использовать различные методы. Вот несколько примеров:
Метод 1: использование цикла
function getDaysBetweenDates($startDate, $endDate)
{
$days = array();
$currentDate = strtotime($startDate);
$endDate = strtotime($endDate);
while ($currentDate <= $endDate) {
$days[] = date('Y-m-d', $currentDate);
$currentDate = strtotime('+1 day', $currentDate);
}
return $days;
}
// Usage
$startDate = '2024-01-01';
$endDate = '2024-01-10';
$days = getDaysBetweenDates($startDate, $endDate);
print_r($days);
Метод 2. Использование класса DatePeriod
function getDaysBetweenDates($startDate, $endDate)
{
$start = new DateTime($startDate);
$end = new DateTime($endDate);
$end = $end->modify('+1 day'); // Include the end date
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, $end);
$days = array();
foreach ($period as $date) {
$days[] = $date->format('Y-m-d');
}
return $days;
}
// Usage
$startDate = '2024-01-01';
$endDate = '2024-01-10';
$days = getDaysBetweenDates($startDate, $endDate);
print_r($days);
Метод 3. Использование функции range()
function getDaysBetweenDates($startDate, $endDate)
{
$days = array_map(function ($timestamp) {
return date('Y-m-d', $timestamp);
}, range(strtotime($startDate), strtotime($endDate), 86400));
return $days;
}
// Usage
$startDate = '2024-01-01';
$endDate = '2024-01-10';
$days = getDaysBetweenDates($startDate, $endDate);
print_r($days);