2013-02-22 2 views

ответ

0

вы должны получить список файлов с помощью Glob() или ScanDir() после того, как вы должны получить даты последнего изменения с помощью filemtime().

Попробуйте этот код

$files = scandir('./'); // Get list files current dir 
$times = array_map('filemtime', $files); // Get last modified date each file 
$result = array_combine($files, $times); // Set file names as array index and times as value 

Теперь у нас есть массив с именами файлов и дату последнего изменения ИТС. Вы можете получить данные с использованием данных foreach($result as $filename => $date) $, которые будут иметь дату unix-time.

+0

на каждый файл, найденный с помощью scandir() Я должен вызывать filemtime(), правильно? – rschirin

+0

Да, вы правы. – Winston

+0

@rschirin Я написал вам простой код в своем ответе – Winston

1
find /p/a/t/h -type f -printf '%p %t\n' 

Покажет вам имя и время каждого файла ниже /p/a/t/h. Для того, чтобы получить время эпохальное вместо длинной формы, используйте:

find /p/a/t/h -type f -printf '%p %[email protected]\n' 

Проверьте документацию find инструкции о том, как изменить формат метки времени.

+0

Могу ли я манипулировать форматом даты? например, я не хочу hh: mm.ss, но только hh: mm – rschirin

+0

Да. RTFM. Не все 'find' поддерживают printf, но те, которые предоставляют строки формата для управления выходом. Если ваш 'find' не предоставляет -printf, используйте' -exec' для вызова 'stat' для печати времени эпохи и фильтрации вывода с помощью perl для получения желаемого формата. –

Смежные вопросы