我可能没有最好的命名约定,但是这里.
我计算日期数组和给定日期之间的间隔.然后我做一个排序,找到“最小”的差异.
$dates = array
(
'0'=> "2013-02-18 05:14:54",
'1'=> "2013-02-12 01:44:03",
'2'=> "2013-02-05 16:25:07",
'3'=> "2013-01-29 02:00:15",
'4'=> "2013-01-27 18:33:45"
);
function find_closest($array, $date)
{
//$count = 0;
foreach($array as $day)
{
//$interval[$count] = abs(strtotime($date) - strtotime($day));
$interval[] = abs(strtotime($date) - strtotime($day));
//$count++;
}
asort($interval);
$closest = key($interval);
echo $array[$closest];
}
find_closest($dates, "2013-02-18 05:14:55");