使用asort()对日期数组进行排序

希洛米·哈西德(Shlomi Hassid)

我真的很困惑,我尝试了很多相关方法来对可能具有不同格式的日期进行排序。

我有一个日期数组,例如:

"0"=>"09.10.2012"
"1"=>"02.10.12"
"2"=>"27.09.15"
"2.0"=>"28.09.2012"
"2.1"=>"29.9.2012"
"2.2"=>"29.09.2012"
"3"=>"9.10.2012"
"3.1"=>"23.4.10"
"4"=>"28.09.2012"
"5"=>"26.10.2012"
"6"=>"12.09.98"
"6.0"=>"05.03.2013"
"6.1"=>"23.4.2013"

(键是字符串,这是有原因的)

现在我知道它们的格式将相同-天,月,年。但是位数可以更改,如在给定数组中看到的那样。

我基本上将它们解析为day-month-year(strtotime()根据文档可以识别的欧洲格式),然后将它们更改为Unix时间戳,我使用对该数组进行排序asort(),但收到了不好的结果:

[6]->[] -- 12.09.98
[1]->[1034380800] -- 02.10.12
[2.0]->[1348790400] -- 28.09.2012
[4]->[1348790400] -- 28.09.2012
[2.2]->[1348876800] -- 29.09.2012
[2.1]->[1348876800] -- 29.9.2012
[3]->[1349740800] -- 9.10.2012
[0]->[1349740800] -- 09.10.2012
[5]->[1351209600] -- 26.10.2012
[6.0]->[1362441600] -- 05.03.2013
[6.1]->[1366675200] -- 23.4.2013
[3.1]->[1681084800] -- 23.4.10
[2]->[1820966400] -- 27.09.15

如您所见,[6](unixtime)包含False,并且strtotime()转换日期失败。

这是我的代码:

function sortArrays_ByDate($target){

        foreach($target as $key_s => $val_s) { $date_exp = preg_replace('#(\.|_)#','-',$val_s); $target[(string)$key_s] = $date_exp; }

        foreach($target as $key_s => $val_s) { $date_exp = strtotime($val_s); $target[(string)$key_s] = $date_exp; }

        asort($target);
         return $target;

}

有人可以解释一下怎么了...

谢谢

卢卡斯·B。

由于某种原因,欧洲人-在98年没有工作,因此我建议将年份编辑为4位数字格式:

    function sortArrays_ByDate($target){

        foreach($target as $key_s => $val_s) {
            $day = substr($val_s, 0, strpos($val_s, '.'));
            $month = substr($val_s, strpos($val_s, '.')+1, strrpos($val_s, '.')-strpos($val_s, '.')-1);
            $year = substr($val_s,  strrpos($val_s, '.')+1);

            if($year > 79 && $year <= 99)
                $year = "19" . $year;
            elseif($year >=00 && $year <= 79)
                $year = "20" . $year;

            $target[(string)$key_s] = strtotime($day .'.'. $month .'.'. $year);
        }

        asort($target);

        /*foreach($target as $value)
            echo date("d.m.Y", $value) . '</br>';
        changed for edit time to d.m.Y ->
        */

        foreach($target as $key_s => $val_s)
        $target[(string)$key_s] = date("d.m.Y", $target[(string)$key_s]);

        return $target;
}

然后它为我工作,并且数组正确排序。

编辑 //

结果是:

Array
(
    [0] => 09.10.2012
    [1] => 02.10.12
    [2] => 27.09.15
    [2.0] => 28.09.2012
    [2.1] => 29.9.2012
    [2.2] => 29.09.2012
    [3] => 9.10.2012
    [3.1] => 23.4.10
    [4] => 28.09.2012
    [5] => 26.10.2012
    [6] => 12.09.98
    [6.0] => 05.03.2013
    [6.1] => 23.4.2013
)
Array
(
    [6] => 12.09.1998
    [3.1] => 23.04.2010
    [4] => 28.09.2012
    [2.0] => 28.09.2012
    [2.1] => 29.09.2012
    [2.2] => 29.09.2012
    [1] => 02.10.2012
    [3] => 09.10.2012
    [0] => 09.10.2012
    [5] => 26.10.2012
    [6.0] => 05.03.2013
    [6.1] => 23.04.2013
    [2] => 27.09.2015
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用asort()对日期进行排序的数组无法正常工作

来自分类Dev

对日期数组进行排序

来自分类Dev

根据当前日期对日期数组进行排序

来自分类Dev

如何通过PHP对日期数组进行排序?

来自分类Dev

使用 BigQuery 对日期数组进行子查询

来自分类Dev

如何在iOS中以升序对日期数组进行排序

来自分类Dev

在不更改日期格式的情况下对日期数组进行排序(无前导0)?-Javascript

来自分类Dev

无法使用结构对日期进行排序

来自分类Dev

如何使用数组中的 moment.js 按降序对日期进行排序

来自分类Dev

对日期为JavaScript的字符串数组进行排序

来自分类Dev

Swift - 根据日期数组对不同的数组进行排序

来自分类Dev

如何在android中以每周为基础对日期数组列表中的条目进行计数

来自分类Dev

如何使用 JavaScript 对带有数据的日期数组进行排序?

来自分类Dev

使用Chartwrapper类时对日期类型的列进行排序

来自分类Dev

Python:使用Lambda以str格式对日期时间进行排序

来自分类Dev

如何使用比较器按降序对日期进行排序

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

使用dd / mm / yyyy格式的JavaScript对日期进行排序

来自分类Dev

Tablesorter使用相对日期列对表进行排序

来自分类Dev

使用熊猫对日期进行年月排序

来自分类Dev

使用Lambda表达式对日期进行排序

来自分类Dev

如何使用AM | PM对日期文件进行排序

来自分类Dev

无法使用 Order by Clause 对日期进行排序

来自分类Dev

使用 JavaScript 以字符串格式对日期进行排序

来自分类Dev

XSLT:如何对日期进行排序

来自分类Dev

按升序对日期进行排序

来自分类Dev

在AngularJS前端中对日期进行排序

来自分类Dev

排序日期数组排序升序迅速

来自分类Dev

如何在字符串数组php中对日期时间进行排序

Related 相关文章

  1. 1

    使用asort()对日期进行排序的数组无法正常工作

  2. 2

    对日期数组进行排序

  3. 3

    根据当前日期对日期数组进行排序

  4. 4

    如何通过PHP对日期数组进行排序?

  5. 5

    使用 BigQuery 对日期数组进行子查询

  6. 6

    如何在iOS中以升序对日期数组进行排序

  7. 7

    在不更改日期格式的情况下对日期数组进行排序(无前导0)?-Javascript

  8. 8

    无法使用结构对日期进行排序

  9. 9

    如何使用数组中的 moment.js 按降序对日期进行排序

  10. 10

    对日期为JavaScript的字符串数组进行排序

  11. 11

    Swift - 根据日期数组对不同的数组进行排序

  12. 12

    如何在android中以每周为基础对日期数组列表中的条目进行计数

  13. 13

    如何使用 JavaScript 对带有数据的日期数组进行排序?

  14. 14

    使用Chartwrapper类时对日期类型的列进行排序

  15. 15

    Python:使用Lambda以str格式对日期时间进行排序

  16. 16

    如何使用比较器按降序对日期进行排序

  17. 17

    如何使用AM | PM对日期文件进行排序

  18. 18

    使用dd / mm / yyyy格式的JavaScript对日期进行排序

  19. 19

    Tablesorter使用相对日期列对表进行排序

  20. 20

    使用熊猫对日期进行年月排序

  21. 21

    使用Lambda表达式对日期进行排序

  22. 22

    如何使用AM | PM对日期文件进行排序

  23. 23

    无法使用 Order by Clause 对日期进行排序

  24. 24

    使用 JavaScript 以字符串格式对日期进行排序

  25. 25

    XSLT:如何对日期进行排序

  26. 26

    按升序对日期进行排序

  27. 27

    在AngularJS前端中对日期进行排序

  28. 28

    排序日期数组排序升序迅速

  29. 29

    如何在字符串数组php中对日期时间进行排序

热门标签

归档