Я пытаюсь найти файлы, которые были созданы сегодня. Я нашел большую часть своего ответа в других постах, но не совсем понял его правильно. Приведенный ниже код повторяет все файлы, а не только те, которые были созданы сегодня. Какие-либо предложения? Благодарю.
$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/>'; }
}
Прежде всего, о функции 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;
}
}
твой код работает на меня. пожалуйста, проверьте дату создания файла один раз. Или попробуйте изменить каталог, который вы создали в прошлом.
if (!is_dir($file) && date ("m-d-Y", filemtime($file)) == date("m-d-Y"))
Может быть, вы хотите, чтобы отображать файлы без каталогов? Попробуйте это для условия.