首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:如何获取文件创建日期?

PHP:如何获取文件创建日期?
EN

Stack Overflow用户
提问于 2010-12-10 01:38:15
回答 3查看 148.1K关注 0票数 90

我正在读取一个包含大量文件的文件夹。

如何获取文件的创建日期。我没有看到任何直接的函数来获取它。

这里有filemtimefilectime

如果文件没有被修改,会发生什么呢?

EN

回答 3

Stack Overflow用户

发布于 2017-12-28 19:12:36

下面是取自PHP文档的示例代码:https://www.php.net/manual/en/function.filemtime.php

// outputs e.g.  somefile.txt was last changed: December 29 2002 22:16:23.

$filename = 'somefile.txt';

if (file_exists($filename)) {

    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}

代码指定文件名,然后检查文件名是否存在,然后使用filemtime()显示修改时间。

filemtime()接受1个参数,它是文件的路径,可以是相对路径,也可以是绝对路径。

票数 22
EN

Stack Overflow用户

发布于 2010-12-10 01:46:43

不幸的是,如果您在linux上运行,则无法访问该信息,因为只存储了最后修改日期。

它确实稍微依赖于您的文件系统。我知道ext2和ext3不支持创建时间,但我认为ext4支持。

票数 8
EN

Stack Overflow用户

发布于 2018-03-29 19:28:18

我知道这个话题太老了,但是,如果有人像我一样在寻找答案,我会把我的解决方案贴出来。

如果你不介意在文件的开头有一些额外的数据,这个解决方案是可行的。

基本上,这个想法是,如果文件不存在,创建它并在第一行追加当前日期。接下来,您可以使用fgets(fopen($file, 'r'))读取第一行,将其转换为DateTime对象或任何其他内容(您显然可以使用它,除非您将其保存为一种奇怪的格式),然后您就有了自己的创建日期!例如,我每隔30天刷新一次日志文件的脚本如下所示:

if (file_exists($logfile)) {
            $now = new DateTime();
            $date_created = fgets(fopen($logfile, 'r'));
            if ($date_created == '') {
                file_put_contents($logfile, date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND | LOCK_EX);
            }
            $date_created = new DateTime($date_created);
            $expiry = $date_created->modify('+ 30 days');
            if ($now >= $expiry) {
                unlink($logfile);
            }
        }
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4401320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档