用php获取文件时间戳是错误的

时间:2013-01-16 13:19:34

标签: php timestamp filemtime

我有以下代码:

public static function getLogFiles()
{
    $dir    = '../tmp/logs';
    $files = scandir($dir);

    foreach ($files as $filename){
        echo "$filename wurde zuletzt modifiziert:: " . date ("F d Y H:i:s.", filemtime($filename)) . "<br>";
    }

    die();
}

对于我使用的调试

print_r($files);

获取包含所有文件的数组。 但我只得到前两个修改日期:

 . wurde zuletzt modifiziert:: January 14 2013 09:06:05. 

.. wurde zuletzt modifiziert:: December 14 2012 10:46:34.


Warning (2): filemtime(): stat failed for Fleetster.log [APP\Lib\Log4All.php, line 134]

system.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

Warning (2): filemtime() [function.filemtime]: stat failed for debug.log [APP\Lib\Log4All.php, line 134]

debug.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

Warning (2): filemtime() [function.filemtime]: stat failed for error.log [APP\Lib\Log4All.php, line 134]

error.log wurde zuletzt modifiziert:: January 01 1970 01:00:00.

有什么问题?

谢谢你,以及最好的问候

1 个答案:

答案 0 :(得分:0)

如果你的文件对于stat()来说太大了(它使用了那个函数),你就会得到这个。手册页上的评论说:

  

如果PHP的整数类型在您的系统上只有32位,则filemtime()将在超过2GB的文件上失败并显示“stat failed”警告。所有与stat()相关的命令都会表现出相同的行为。

根据您的具体情况,stat()可能有不同的原因。