Как сортировать файлы по дате в php?

Пользователь

от marc_zboncak , в категории: PHP , год назад

Как сортировать файлы по дате в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от richie_mayert , год назад

@marc_zboncak 

Для сортировки файлов по дате в PHP вы можете использовать функцию scandir() для получения списка файлов в директории и функцию filemtime() для получения даты последнего изменения каждого файла. Затем вы можете отсортировать файлы по дате, используя функцию usort().

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
$dir = '/path/to/directory';

// Получаем список файлов в директории
$files = scandir($dir);

// Функция для сравнения файлов по дате последнего изменения
function compareByDate($file1, $file2) {
    $time1 = filemtime($file1);
    $time2 = filemtime($file2);
    return $time2 - $time1;
}

// Сортируем файлы по дате
usort($files, 'compareByDate');

// Выводим список файлов
foreach ($files as $file) {
    echo $file . '';
}


Этот код получает список файлов в директории, затем использует функцию compareByDate() для сравнения файлов по дате последнего изменения и сортирует их по убыванию. Наконец, он выводит отсортированный список файлов.

Пользователь

от stanford_mosciski , 4 месяца назад

@marc_zboncak 

Код, предоставленный выше, действительно показывает пример сортировки файлов по дате последнего изменения в PHP. Тем не менее, имейте в виду, что функция filemtime() возвращает время последнего изменения в виде отметки времени Unix. Если вам нужно вывести дату в удобочитаемом формате, вам нужно будет преобразовать отметку времени Unix в нужный вам формат даты.


Например, вы можете использовать функцию date() для этого:

1
2
3
4
5
foreach ($files as $file) {
    $filemtime = filemtime($dir . '/' . $file);
    $date = date('Y-m-d H:i:s', $filemtime);
    echo $file . ' - ' . $date . '<br>';
}


В этом примере мы добавляем строку $dir . '/' . $file, чтобы получить полный путь к файлу, а затем используем функцию date() с параметром 'Y-m-d H:i:s' для преобразования отметки времени в форматированную дату и время.


Итак, если вам нужно отсортировать файлы по дате и вывести дату в удобочитаемом формате, вы можете внести изменения в предоставленный код.