Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP获取目录的创建时间_Php - Fatal编程技术网

PHP获取目录的创建时间

PHP获取目录的创建时间,php,Php,在php中,是否仍然可以找到目录的创建时间?我尝试了filectime,但这只适用于文件。它应该适用于目录,这是我得到的: $ php -r "echo filectime(__DIR__);" 1311596297 在unix中,文件夹也是文件。所以这也应该适用 $folder = 'includes'; echo date ("F d Y H:i:s.", filemtime($folder)); 输出为 October 06 2010 20:20:58. 您可以使用PHP: 收集按

在php中,是否仍然可以找到目录的创建时间?我尝试了
filectime
,但这只适用于文件。

它应该适用于目录,这是我得到的:

$ php -r "echo filectime(__DIR__);"
1311596297

在unix中,文件夹也是文件。所以这也应该适用

$folder = 'includes';

echo date ("F d Y H:i:s.", filemtime($folder));
输出为

October 06 2010 20:20:58.
您可以使用PHP:

收集按文件名命名的文件的统计信息。如果文件名是符号链接,则统计信息来自文件本身,而不是符号链接

示例:

<?php
    $stat = stat('/your/path');
    echo $stat['ctime'];
?>

它以Unix时间戳的形式返回创建时间。

如果(它不起作用) 尝试clearstatcache()在您的文件时间函数之前

$filename='dirname';
date ("F d Y H:i:s.", filectime($filename))
它会起作用。

试试这个:

$filename = 'media/';
echo "$filename was created modified: ".date("F d Y H:i:s.", filectime($filename));

我在Linux服务器上测试了函数filectime()和filemtime(),它们都是 也可以在目录上正确工作,因为它们返回时间戳

然后,我尝试获取一个目录的最后修改日期,通过FTP重命名它,然后再次检查它,发生了一件奇怪的事情:

  • 创建日期时间戳已用当前时间更新
  • 上次修改的日期根本没有更新
  • 我认为这可能是因为FTP文件操作,而不是通过命令行或系统图形界面直接操作

    在Windows上,重命名目录时,创建日期和上次修改日期都不会更改


    对于您的测试,我还建议您查看clearstatcache()函数(我在测试中也使用了该函数)以清除文件系统信息的PHP缓存。

    否。不可靠。

    这是因为正如Gordon在评论中指出的那样,
    ctime
    不是关于创造,而是关于改变。因此,虽然
    filectime()
    可以在目录上工作(至少在Unix机器上),但它很可能不会给出您要查找的日期。请参见以下页面上的注释:

    还要注意,在某些Unix文本中,文件的ctime被称为文件的创建时间。这是错误的。在大多数Unix文件系统中,Unix文件没有创建时间


    换句话说,在目录中创建新文件可能会更改目录的
    ctime
    。如果您真的需要跟踪创建时间,您需要自己实现内务管理。

    (侧注)
    filectime
    是Linux上的更改时间。它只在Windows上返回创建时间。谢谢,原来我指定的文件夹路径不正确。请注意上面Gordon的评论:
    filectime
    将为您提供Unix服务器上上次更改的时间,该时间可能与创建时间相同,也可能与创建时间不同。
    $filename = 'media/';
    echo "$filename was created modified: ".date("F d Y H:i:s.", filectime($filename));