Найти файлы в папках и подпапках, которые были созданы на текущую дату

Я пытаюсь найти файлы, которые были созданы сегодня. Я нашел большую часть своего ответа в других постах, но не совсем понял его правильно. Приведенный ниже код повторяет все файлы, а не только те, которые были созданы сегодня. Какие-либо предложения? Благодарю.

$di = new RecursiveDirectoryIterator('/documents/listings');
foreach (new RecursiveIteratorIterator($di) as $filename => $file)
{

if (date ("m-d-Y", filemtime($file)) == date("m-d-Y"))

{ echo $filename . '<br/>'; }

}

3

Решение

Прежде всего, о функции filemtime, возвращается: время модификации файла.

Но также существует функция filectime, возвращается: время изменения файла inode.

Как я нашел filectime лучше для вашего вопроса, но он действительно возвращает файлы не только созданные сегодня, но и отредактированные сегодня.

Мой код:

<?php

$path = dirname(__FILE__);

$objects = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($path),
RecursiveIteratorIterator::SELF_FIRST
);
foreach ($objects as $file => $object) {
$basename = basename($file);
if ($basename == '.' or $basename == '..') {
continue;
}
if (is_dir($file)) {
continue;
}
if (date('Y-m-d') === date('Y-m-d', filectime($file))) {
echo $file . PHP_EOL;
}
}
1

Другие решения

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

1

if (!is_dir($file) && date ("m-d-Y", filemtime($file)) == date("m-d-Y"))

Может быть, вы хотите, чтобы отображать файлы без каталогов? Попробуйте это для условия.

-1
По вопросам рекламы [email protected]