如何获取最接近日期与PHP中的日期数组相比较

This post几乎回答了这个问题,但我有特定的需要,没有找到我在那里寻求的.这在我的经验之外;不能把我的头围绕着,所以我真正需要的是一个正确的方向.

假设我有一个数组如下:

array(5) { 
    [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" 
}

我想有一种方法提供一个日期(例如“2013-02-04 14:11:16”),并且有一个函数确定与数组中最接近的匹配(这将是“2013-02 -05 16:25:07“)

我会感谢任何提示.谢谢! 🙂

最佳答案
我可能没有最好的命名约定,但是这里.

我计算日期数组和给定日期之间的间隔.然后我做一个排序,找到“最小”的差异.

$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");

转载注明原文:如何获取最接近日期与PHP中的日期数组相比较 - 代码日志