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

Это получает изображения из моей папки.

$dirname = "./uploaded_files/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){

if(!in_array($curimg, $ignore)) {
};

Это получает даты последнего изменения для каждого файла в папке.

$result = array();
$folder = ('uploaded_files/');
$handle = opendir($folder);
foreach (glob("$folder/*") as $team){$sort[]= end(explode('/',$team));}

Создание массива, содержащего файлы в текущем каталоге:

while (false !==($file = readdir($handle)))
{
if ( $file != ".." && $file != "." )
{
$file = "uploaded_files/".$file ;
if (!is_dir($file))
$result[] = $file;
}
}
closedir($handle);

Это мой оператор IF AND FOR EACH (вот моя проблема)!!!

$lastmoddate = (date("Ymd", filemtime($file)));
$todaysdate = (date("Ymd"));

foreach ($result as $file){
if ($lastmoddate <= $todaysdate){
if (strpos($file, "+12:00") !==false){
echo "$file".",".date ("h:i d/m/Y", filemtime($file))."\r\n"."<br/>";

}
}
}

то, что я пытаюсь сделать, это «если имена файлов содержат +12:00 и если даты последнего изменения для каждого файла меньше или равны сегодняшней дате, то эхо-изображения! НО это не работает.

Может ли кто-нибудь помочь мне понять, как переписать мое заявление!?

Я только начал изучать PHP Может ли кто-нибудь помочь!?

Спасибо


person user1026866    schedule 06.11.2011    source источник


Ответы (1)


Используя функцию date(), вы конвертируете целочисленную дату в удобочитаемую дату. При этом вы больше не сможете сравнивать даты (в используемом вами формате d my y).

Самым простым решением было бы изменить формат даты с «d my y» на «Ymd», чтобы его можно было сравнивать как число.

Кроме того, вы упоминаете, что moddate должен быть меньше или равен, но ваш код использует >=, поэтому вам может потребоваться переключить это.

person NJLaPrell    schedule 06.11.2011
comment
Эй, спасибо за это! Я забыл упомянуть в приведенном выше коде, что существует СПИСОК файлов, а не один, знаете ли вы, как это будет работать для меня, используя foreach? Это то, что у меня есть до сих пор, но $lastmoddate имеет только ОДНО значение файла... я не могу получить фактическую дату последнего изменения для каждого файла... есть идеи? foreach ($result as $file){ if ($lastmoddate › $todaysdate){ if (strpos($file, +12:00) !==false){ echo $file.,.date (h:id/m/ Y, filemtime($file)).\r \n.‹br/›; } } } - person user1026866; 06.11.2011
comment
Предполагая, что $result представляет собой список файлов, просто добавьте свой filemtime() внутрь foreach. foreach($result as $file){if(date(Ymd,filemtime($file)) ›= date(Ymd,time())){/*etc..*/} Код немного сжат, но надеюсь вы получаете картину. - person NJLaPrell; 07.11.2011