2013-02-22 68 views

回答

0

你需要使用的glob获取列表文件()或SCANDIR()后,您需要使用filemtime取得最后修改日期()。

试试这个代码

$files = scandir('./'); // Get list files current dir 
$times = array_map('filemtime', $files); // Get last modified date each file 
$result = array_combine($files, $times); // Set file names as array index and times as value 

现在我们有文件名和最后修改日期的阵列。您可以通过使用foreach($result as $filename => $date) $数据获得数据将有unix时间日期。

+0

用scandir()找到的每个文件我必须调用filemtime(),对不对? – rschirin 2013-02-22 20:01:06

+0

是的,你是对的。 – Winston 2013-02-22 20:06:46

+0

@rschirin我在我的答案中写给你简单的代码 – Winston 2013-02-22 20:15:40

1
find /p/a/t/h -type f -printf '%p %t\n' 

会告诉你下面/p/a/t/h每个文件的名称和修改时间。为了得到一个划时代时间,而不是长期的形式,使用方法:

find /p/a/t/h -type f -printf '%p %[email protected]\n' 

检查文档find关于如何改变时间戳的格式说明。

+0

我可以操作日期格式吗?例如,我不希望hh:mm.ss,但只有hh:mm – rschirin 2013-02-24 19:33:56

+0

是的。 RTFM。并不是所有的find都支持printf,但是那些提供格式字符串来操纵输出。如果你的'find'没有提供-printf,那么使用'-exec'来调用'stat'来打印一个纪元时间并用perl过滤输出以产生你想要的格式。 – 2013-02-25 05:19:42