【问题标题】:How do you get last modified dates of all files within a folder and compare it to a certain date? php如何获取文件夹中所有文件的最后修改日期并将其与某个日期进行比较? php
【发布时间】:2011-11-06 05:51:55
【问题描述】:

有没有人知道如何获取文件夹中所有文件的最后修改日期并将其与某个日期进行比较?

到目前为止,我有这个。

<?php
    $lastmoddate = (date("Ymd", filemtime($file)));
    $todaysdate = date("Ymd", time());

    $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);


    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/>";
            }
        }
    }
?>

这不起作用,因为 $lastmoddate = 给我的日期是 1969 12 31。

【问题讨论】:

  • 请学会缩进你的代码。当你试图整理事情时,很难阅读它。到目前为止 -1。
  • 你的文件真的在他们的名称中有一个“+12:00”部分吗
  • 对不起,我刚开始学习php。将尝试清理代码。是的,我的文件被称为“+12:0004:31 06.11.2011-Banner.jpg”我想做的是记下文件名中的时区

标签: php datetime last-modified strpos filemtime


【解决方案1】:

到目前为止,我可以在您的代码中看到 2 个不一致的内容。

  1. 您只获得了 lastmoddate 一次,不是针对现有文件,而是针对一些未定义(尚未)的 $file

  2. 你约会 copmparison 毫无意义。比如说,即使您的文件今天已被修改,它的日期也永远不会超过今天的日期,因此,您的所有比较肯定会失败。至少使用&gt;=== 进行比较,而不是&gt;

【讨论】:

  • 文件已在-10GMT 修改,网站基于+10GMT。所以 $todaysdate 意味着 -10GMT。从你所看到的...... $file 的价值是什么?
【解决方案2】:

PHP 的 filemtime()(它在内部基本上只是调用 stat() 并且只返回 m-time 值)一次只处理一个文件。

您已经在脚本中调用了glob() 来获取文件名列表。将 filemtime() 调用放在该循环中以获取每个文件的 mtime,并在其中进行比较。

您的代码不起作用,因为您在执行初始 filemtime() 调用时尚未为 $file 分配值,因此返回布尔值 FALSE 表示失败,该值将转换为整数 @ 987654328@ 用于date() 格式。您所在的时区是负格林威治标准时间,因此转换为稍早于 1970 年 1 月 1 日之前的日期,即 UTC 的时间 0。

你需要的是:

foreach (glob("$folder/*") as $team) { 
    $lastmoddate = filemtime("$folder/$team");
    ... date stuff ...
    $sort[]= basename($team);
}

【讨论】:

猜你喜欢
  • 2012-03-10
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 2019-02-26
  • 2021-04-12
  • 2021-10-25
  • 1970-01-01
相关资源
最近更新 更多