从php上的最小日期排序日期数组

时间:2018-06-23 13:46:10

标签: php arrays sorting date

我需要从最小的日期开始对数组进行排序。我使用了Usort,但它只考虑一天就对数组进行排序。我尝试使用示例在javascript中使用sort的代码,但是我需要在php中发生这种情况,或者找到一种将php数组转换为js的方法。

下面是代码:

{{2} }

2 个答案:

答案 0 :(得分:0)

您好,最后我在一个论坛上找到了一个解决方案,也许可以为其他人提供帮助。解决方案是在原始数组的基础上创建新的时间戳数组。然后对这个新数组进行排序。只需在回显新数组的第一个元素后加上“ date”,即可返回第一个日期。这是代码:

  <?php
            $ArrayDates= array ('22/03/2018','09/04/2018', '26/03/2018', 
            '27/11/2017','22/01/2018', '06/09/2017');

            function date_to_timestamp($d){
                $newarr = array();
                foreach($d as $f) {
                $arr=explode("/",$f);
                array_push($newarr, mktime(0,0,0,$arr[0],$arr[1],$arr[2]));
                }

                return $newarr;
            } 

            function cmp2($a, $b)
                {
                if ($a == $b) {
                return 0;
                }
                return ($a < $b) ? -1 : 1;
            }

            $third = date_to_timestamp($ArrayDates);

            usort($third, "cmp2");

            echo date('m/d/Y', $third[0]);
  ?>

答案 1 :(得分:0)

这将按升序对日期数组进行排序。

$date = array('23-02-2012','21-01-2014','11-01-2010','09-02-2001','01-01-2019');  

function date_sort($a, $b) {
    return strtotime($a) - strtotime($b);
}

usort($date, "date_sort");

print_r($date);

输出:-

Array ( 
         [0] => 09-02-2001 
         [1] => 11-01-2010 
         [2] => 23-02-2012 
         [3] => 21-01-2014 
         [4] => 01-01-2019 
      )