【问题标题】:12 Hour Clock Array Sort12 小时时钟数组排序
【发布时间】:2015-06-18 01:29:46
【问题描述】:

我一直在 Google 上搜索,但找不到任何解决方案来根据 12 小时时钟格式对数组进行排序。我可以通过将 24 小时时钟转换为 timestamps 然后使用 krsort 对它进行排序。但我不确定如何对 12 小时制进行排序..

以下将是场景的示例..

未排序

array(
    '0' => '03:00 AM',
    '1' => '12:00 AM',
    '2' => '03:00 PM',
    '3' => '01:00 AM',
    '4' => '04:00 PM',
    '5' => '02:00 AM',
    '6' => '12:00 PM',
    '7' => '04:00 AM',
    '8' => '01:00 PM',
    '9' => '02:00 PM'
);

已排序

array(
    '0' => '12:00 AM',
    '1' => '01:00 AM',
    '2' => '02:00 AM',
    '3' => '03:00 AM',
    '4' => '04:00 AM',
    '5' => '12:00 PM',
    '6' => '01:00 PM',
    '7' => '02:00 PM',
    '8' => '03:00 PM',
    '9' => '04:00 PM'
);

代码显然会动态工作,因此无论数组中给出的时间是什么,它都会被排序为ascending orderdescending order 中的12 小时制

【问题讨论】:

    标签: php arrays sorting time clock


    【解决方案1】:

    strtotime 将接受该格式。因此,您可以将自定义排序 (usort) 与基于 strtotime 的回调一起使用。

    usort($array, function($a, $b) {
       return (strtotime($a) > strtotime($b));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 2016-06-26
      • 2022-08-16
      相关资源
      最近更新 更多