Данная функция поможет в решении задач, связанных с датами. Например, когда мы работаем с массивом дат рабочих дней, а вычисления нужны по типу «год назад», «месяц назад» и т.д. Дата, скажем, «год назад» может быть выходным днем, но нам нужно получить предыдущий рабочий день от выходного.
function findClosestDate($dates, $find_date) {
$newDates = [];
foreach($dates as $date)
{
$newDates[] = strtotime($date);
}
arsort($newDates);
foreach ($newDates as $date)
{
if ($date <= strtotime($find_date))
return $date;
}
}
$dates = array
(
'0' => "2013-01-17 05:14:54",
'1' => "2013-01-16 01:44:03",
'2' => "2013-01-13 16:25:07",
'3' => "2013-01-12 02:00:15",
'4' => "2013-01-11 18:33:45"
);
$values = findClosestDate($dates, date('2013-01-15 14:11:16'));
echo date('Y-m-d H:i:s', $values);