【问题标题】:How to sort list of dates in php?如何在php中对日期列表进行排序?
【发布时间】:2019-11-17 16:45:42
【问题描述】:
foreach ($programs as $key => $program) {
  $mp4FullPath_date = date("F d Y H:i:s", filemtime($src_dir.DS.$mp4_files[$key])); // **Line A**
  print_r($mp4FullPath_date); //Added for debugging purpose **Line B**
}

B 行在页面加载时打印以下日期/时间(也可以超过三个。此时,它是三个。):

May 01 2019 14:56:56 April 30 2019 10:21:12  April 30 2019 10:21:12

问题陈述:

我想知道我需要在 LineALineB 之间添加什么代码,以便在 LineB 进行调试时以升序打印日期顺序如下:

 April 30 2019 10:21:12  April 30 2019 10:21:12 May 01 2019 14:56:56

【问题讨论】:

  • 只需应用您从上一篇文章中获得的自定义函数并将其应用到您的数组中。只要它确实是strtotime 可以解析的日期集合
  • 它应该按预期对日期进行排序
  • @Ghost 我想知道您是否可以在答案中告诉我我们如何做到这一点或演示here
  • 所以你得到一个包含三个日期值的字符串,你想对它们进行排序吗?或者你得到 3 个单独的迭代来打印$mp4FullPath_date
  • 我从这个 php 代码 $mp4FullPath_date = date("F d Y H:i:s", filemtime($src_dir . DS . $mp4_files[$key])); // Line A 得到这个 2019 年 5 月 1 日 14:56:56 2019 年 4 月 30 日 10:21:12 2019 年 4 月 30 日 10:21:12

标签: php arrays sorting date


【解决方案1】:

根据我看到/理解的内容,您正在尝试对 $mp4FullPath_date 进行排序,这是一个日期,而不是数组。

将日期添加到数组中,然后在该数组上使用 usort()date_sort()

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

$dates = [];
foreach ($programs as $key => $program) {
    $mp4FullPath_date = date("F d Y H:i:s", filemtime($src_dir.DS.$mp4_files[$key]));
    $dates[] = $mp4FullPath_date;
}

usort($dates, "date_sort");
echo implode(" ", $dates);

【讨论】:

  • $dates[] = $mp4FullPath_date; 之后添加print_r($dates); 我得到以下o/p:Array ( [0] => May 01 2019 14:56:56 ) Array ( [0] => May 01 2019 14:56:56 [1] => April 30 2019 10:21:12 ) Array ( [0] => May 01 2019 14:56:56 [1] => April 30 2019 10:21:12 [2] => April 30 2019 10:21:12 )
  • 我不知道为什么上面打印了三遍。
  • 在外行语言中,我希望按升序排列May 01 2019 14:56:56 April 30 2019 10:21:12 April 30 2019 10:21:12
  • @flash 如果您想更改订单,只需交换date_sort 中的位置,这样您就有return strtotime($b) - strtotime($a); 而不是return strtotime($a) - strtotime($b);
  • 不,我不想更改订单。我希望日期按升序显示。我已经修改了我以使其更清晰。
猜你喜欢
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2020-10-25
  • 2014-05-20
  • 2020-01-15
  • 2017-03-20
  • 2010-10-10
相关资源
最近更新 更多