我的服务器上有一堆文件,文件名从'april2009'到'march2013',中间每个月都有一个文件(加上从现在起每个月的新文件)。
我尝试使用'filemtime'按顺序排列,但这给出了一个随机顺序,因为它们似乎已被修改过了。
如何排序文件名并按顺序排列,从最近的第一个开始?
(使用php获取文件名,但可以使用jquery或混合用于此目的)
感谢
答案 0 :(得分:1)
strtotime
令人惊讶用于日期转换。
检索完文件列表后,您可以执行以下操作:
$date = strtotime('april2003');
哪个会给你:1049155200
。这意味着:
1/4/2003à2:00:00
获得时间戳后,您可以按照自己的意愿进行排序。
这是一个POC:
$dirs = array();
if ($handle = opendir('/path/to/dir')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && is_dir($entry)) {
$dirs[strtotime(substr($entry, 0, -5))] = $entry;
}
}
closedir($handle);
}
krsort($dirs);
答案 1 :(得分:0)
说得客气一点,在提出namning文件约定之前应该考虑这个问题。正如评论中所指出的,唯一明智的命名惯例是可分类的yyyy-mm或yyyy-mm-dd。
在这种情况下,您唯一的选择是: