获取最近日期的文件夹

时间:2017-06-16 08:20:23

标签: php codeigniter codeigniter-3

我有一个任务,我必须找到最近添加的文件夹(由日期命名)。问题是,当我用所有带日期的文件夹获取目录时,我的数组包含文件夹的完整路径,而不仅仅是日期文件夹。让mi给你和我的代码示例和样品输出......

这是我的代码

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');
var_dump($dirs);
$mostRecent= 0;
foreach($dirs as $date){
    $curDate = strtotime($date);
    if ($curDate > $mostRecent) {
        $mostRecent = $curDate;
    }
}
var_dump($mostRecent);
die();

这是我得到的输出

D:\wamp64\www\mypage\public_html\rest>php index.php cli/pars parseFiles
array(2) {
  [0]=>
  string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-15"
  [1]=>
  string(111) "D:\wamp64\www\mypage\public_html\rest\application\controllers\cli/../../../var/Html/2017-07-16"
}
int(0)

所以我认为问题是因为var $ dirs包含我的目录的完整路径而不是日期文件夹名称。我怎样才能克服我的问题?谢谢

2 个答案:

答案 0 :(得分:2)

您的代码的解决方案如下。 basename将从完整路径字符串中为您提供文件夹名称。

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');
var_dump($dirs);
$mostRecent= 0;
foreach($dirs as $date){
    $curDate = strtotime(basename($date));
    if ($curDate > $mostRecent) {
        $mostRecent = $curDate;
    }
}
var_dump($mostRecent);
die();

答案 1 :(得分:2)

basename() - 返回路径的尾随名称组件。

在您的情况下,它将如下所示:

$dirs = array_filter(glob(__DIR__ . '/../../../var/Html/*'), 'is_dir');

foreach($dirs as $dir) {
    var_dump(basename($dir));
}

输出:

string(10) "2017-07-15"
string(10) "2017-07-16"