【问题标题】:if the lastmodified dates for each file is less or equal to todays date then echo Images如果每个文件的最后修改日期小于或等于今天的日期,则回显图像
【发布时间】:2011-11-06 04:13:18
【问题描述】:

这会从我的文件夹中获取图像。

$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 并且如果每个文件的 lastmodified 日期小于或等于今天的日期,则回显图像!但它不起作用。

谁能帮我弄清楚如何重写我的陈述!?

我刚开始学习 PHP 谁能帮忙!?

谢谢

【问题讨论】:

    标签: php datetime foreach last-modified strpos


    【解决方案1】:

    通过使用 date() 函数,您可以将整数日期转换为人类可读的日期。这样做时,您将无法再比较日期(以您使用的 d m y 格式)。

    最简单的解决方法是将日期格式从“d m y”更改为“Ymd”,以便可以将其作为数字进行比较。

    另外,您提到 moddate 应该小于或等于,但您的代码使用 >=,因此您可能需要切换它。

    【讨论】:

    • 嘿,谢谢!我忘了在上面的代码中提到的是,有一个文件列表,而不仅仅是一个,你知道使用 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"."
      "; } } }
    • 假设 $result 是一个文件列表,只需将您的 filemtime() 放入 foreach 中。 foreach($result as $file){if(date("Ymd",filemtime($file)) >= date("Ymd",time())){/*etc..*/} 代码有点浓缩,但希望你能明白。
    猜你喜欢
    • 1970-01-01
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多