无论如何在php中找到目录的创建时间?我试过了filectime
,但这只适用于文件。
答案 0 :(得分:6)
它应该适用于目录,这是我得到的:
$ php -r "echo filectime(__DIR__);"
1311596297
答案 1 :(得分:4)
在unix中,文件夹也是一个文件。所以它也应该适用于那个
$folder = 'includes';
echo date ("F d Y H:i:s.", filemtime($folder));
输出
October 06 2010 20:20:58.
答案 2 :(得分:3)
您可以使用PHP stat function:
收集filename命名的文件的统计信息。如果filename是符号链接,则统计信息来自文件本身,而不是符号链接。
<强>示例:强>
<?php
$stat = stat('/your/path');
echo $stat['ctime'];
?>
它将创建时间作为Unix时间戳返回。
答案 3 :(得分:1)
print_r( stat('/path') )
答案 4 :(得分:0)
如果(它不起作用) 在 filectime 功能之前尝试 clearstatcache(); ;
答案 5 :(得分:0)
$filename='dirname';
date ("F d Y H:i:s.", filectime($filename))
它会起作用。
答案 6 :(得分:0)
试试这个:
$filename = 'media/';
echo "$filename was created modified: ".date("F d Y H:i:s.", filectime($filename));
答案 7 :(得分:0)
我在Linux服务器上测试了函数filectime()和filemtime() 在目录上也正常工作,因为它们返回时间戳。
然后,我试图获取目录的最后修改日期,通过FTP重命名然后再次检查,这就是发生的奇怪事情:
我认为这可能是由于FTP文件操作而不是通过命令行或系统图形界面直接操作而发生的。
在Windows上,重命名目录时,创建日期和上次修改日期都不会更改。
对于您的测试,我还建议您查看clearstatcache()函数(我在测试中也使用它)来清除文件系统信息的PHP缓存。
答案 8 :(得分:0)
否。不可靠。
那是因为ctime
不是关于创造,而是改变,正如戈登的评论所指出的那样。因此,虽然filectime()
确实可以在目录上运行(至少在Unix机器上),但它很可能无法为您提供所需的日期。请参阅PHP Doc page for filectime()
上的说明:
另请注意,在某些Unix文本中,文件的ctime称为文件的创建时间。这是错的。在大多数Unix文件系统中,Unix文件没有创建时间。
换句话说,在目录中创建新文件可能会更改目录的ctime
。如果您真的需要跟踪创建时间,您需要自己实施内务管理。