这篇文章几乎为我回答了这个问题,但是我有特定的需求,没有找到我想要的东西。这就是我的经验。我无法完全绕开它,所以我真正需要的只是指向正确方向的一个点。
假设我有一个如下数组:
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” -0516: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");