php - 带有文件时间的排序功能
问题描述
我在页面上显示文件及其添加日期。我想按日期添加排序,但我不知道该怎么做。这是一段代码:
$dir_a2 = 'serv_fic2/Anglais';
$files_a2 = scandir($dir_a2, 1);
$res = '<div class="container">
<div class="row title">
<div class="col-md-12">
<h1>Gestion Documents Formateurs</h1>
</div>
</div>
<div class="row title">';
$res .= '<div class="col-md-6">
<b>Anglais</b>';
foreach ($files_a as $key => $value) {
if(!in_array($value,array(".",".."))){
$res .= '<br>'.$value.
'<i> | mis le : '.date ("d.m.y",filemtime('serv_fic/Anglais/'.$value)).'</i>'.
'<a href="download.php?path=Anglais&file='.$value.'&down=form">
<input type="button" value="Telecharger">
</a>
<a href="delete_file.php?path=Anglais&file='.$value.'&u_id=Admin&type=Admin&delete=form">
<input type="button" value="Supprimer">
</a>';
}
}
解决方案
您可以通过以下代码对文件时间进行排序
$files = scandir($dir_a2, 1);
usort($files, function($a,$b) {
return filemtime($b) - filemtime($a);
});
这是排序DESC
,如果你愿意ASC
,改变
filemtime($b) - filemtime($a)
至
filemtime($a) - filemtime($b)
如果你想过滤特定范围内的文件时间,试试这个
// Should from _GET or _POST
$from = strtotime('2020/02/10 00:00:01');
$to = strtotime('2021/03/30 00:00:01');
$files = array_filter($files, function($file) use ($from, $to) {
return $from <= filemtime($file) && filemtime($file) <= $to;
});
然后进行排序
希望这可以帮助!
推荐阅读
- java - 使用带角度的弹簧启动时出现 CORS 策略错误
- cakephp - CakePHP 3如何使用REST以正确的方式保存相关关联1:N?
- javascript - 当 pageYOffSet = 0 时隐藏导航栏
- android - 如何从反应原生应用程序创建库
- python - Python Pyodbc 二进制列返回 \xda\x08\xcd\x08\xba\x08 而不是数字
- sql - 从 SQL Server 2008 中的部分构造日期
- python - 如何在詹金斯管道的docker容器中运行python脚本
- regex - Grep 正则表达式捕获的组
- docker - 使用 docker-compose 时导入 keycloak 配置文件
- bash - gcov/lcov - 如何从覆盖数据中排除除一个目录之外的所有目录