我正在從目錄中提取文件名和修改日期。 我必須將日期格式化爲ymd h:i,以便我可以使用array_multisort按日期順序對數組進行排序。將日期字符串調整爲其他格式
我想然後從ymd h:i重新格式化日期到d/m/y h:i;所以140428 11:54會變成28/04/14 11:54。
我已經有一個for循環,通過每個數組位置基本上追加到一個變量,以便在網站上打印出來。
<?php
$filelist = array("");
$datelist = array("");
$html = "";
$x = "";
$days = 250;
$path = 'Directory...';
if ($handle = opendir($path)) {
while (false !== ($file = readdir ($handle))) {
if (($file !== ".") && ($file !== "..") && ($file !== "Failed")
&& ($file !== "Complete")) {
if (filemtime($path.'/'.$file) > (time() - ($days * 24 * 60 * 60))) {
array_push($filelist, $file);
array_push($datelist, date("ymd h:i", filemtime($path.'/'.$file)));
}
}
}
closedir($handle);
array_multisort($datelist, SORT_DESC, $filelist);
$num = count ($filelist);
for ($x=0; $x<$num; $x++) {
$html .= '<tr><td><a href="file://directory/'.$filelist[$x].'">'.$filelist[$x]
.'</a><br></td><td>'.$datelist[$x].'</td></tr>'."\n\t\t\t\t\t\t\t\t\t\t\t\t";
}
}
?>
你的意思是你知道如何生成'140428 11:54',但無法弄清楚如何讓'28/04/14 11:54 '?你甚至知道你的代碼是由哪一行負責'140428 11:54'? –
那你爲什麼要用'date'呢? 'filemtime'返回一個時間戳,可以不經過轉換就排序。爲什麼在初始化數組時,地獄裏有一個空字符串? –
我對此表示歉意......這是我寫的第一個php腳本。當我沒有用空字符串初始化時,httpd錯誤日誌被填充。另外從我的Java知識中填充一個空值的變量,可以確保它覆蓋內存分配,並且不會獲取現有值。 負責140428 11:54(示例)的代碼行是: array_push($ datelist,date(「ymd h:i」,filemtime($ path。'/'。$ file))); 由於我使用按字母排序的array_multisort,因此這種格式似乎是最簡單的解決方案。 sebcap26,你會如何編輯我的代碼? – syme89