2013-02-22 92 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