php - 与PHP中的日期数组相比,如何获得最接近的日期

标签 php date strtotime

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 - 与PHP中的日期数组相比,如何获得最接近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016725/

相关文章:

php - 如何修复 : no query results for model [App\User] error

php strtotime +2.5 小时错误?

php - 重复月度和年度事件——如何保证准确性?

php - 在具有多个相对日期的 strtotime 中使用 'next'

php - 没有从 htaccess 中的 SetEnv 变量获取 $_SERVER 中的值

php - 我的数据库的高级组织,需要提示

php - 当我已经有一个时使用 GET 方法?在我的查询字符串中

javascript - 如何通过单击按钮将日期和时间插入输入字段

javascript - 如何在 Freemarker 模板或 javascript 中以特定格式转换日期

java - 如何将时间戳字符串转换为本地时间字符串?