2013-05-14 145 views
0

我有一個問題,我創建了一個完美的作品庫,但排序圖像的功能取決於他們只有它只有它忽略了嘴和分鐘... 用於排序是::::: | d/m/Y H:我:s |,但是當我移動到另一個嘴巴時,我失去了順序,因爲它只取決於一天,因爲我說我想讓它考慮嘴巴。[solver}排序庫按日期

 
$date = date ("d/m/Y H:i:s",filemtime($dir_mini)); 

function sortFunctionASC ($a , $b) { return strcmp($a["date"], $b["date"]); } 

在這裏,我給它排序畫廊

//Boucle sur le répertoire On extrait aussi le Nom de l'image et de la miniature 
    $images = array(); 
    while (false !== ($Fichier = readdir($ouverture))) 
    {  
      $berk = array('.', '..'); 

      $dir_mini = $dos_mini.$Fichier; 
      $dir_img = $dos_img.$Fichier; 
      $img_name = $dir_mini ; 
      $img_name = preg_replace('#jpg|png|jpg|mini|/|\.#i', '',$img_name); 
      $date_precise = date ("d/F/Y-H:i",filemtime($dir_mini)); 
      $date = date ("d/m/Y H:i:s",filemtime($dir_mini)); 
      if(!in_array($Fichier, $berk) AND !is_dir($dir_mini) AND !is_dir($dir_img)) 

      { 
       $image = array(); 
       $image['date_precise'] = $date_precise; 
       $image['date'] = $date; 
       $image['img'] = $dir_img; 
       $image['thumb'] = $dir_mini; 
       $images[] = $image; 

      } 
    } 
    closedir($ouverture); 

// Cette deux fonctions trient les images en fonction de date ASC croissant, DESC décroissant 
function sortFunctionASC ($a , $b) { return strcmp($a["date"], $b["date"]); } 
function sortFunctionDESC($b , $a) { return strcmp($a["date"], $b["date"]); } 

if (isset ($_GET['ASC'])) { usort ($images,"sortFunctionASC"); } 
if (isset ($_GET['DESC'])) { usort ($images,"sortFunctionDESC"); } 
if (!isset($_GET['ASC']) AND !isset($_GET['DESC'])) { usort ($images,"sortFunctionDESC") ;} 
+0

用於排序爲時間戳將永遠作爲DMY字符串排序一致將始終提供不一致的結果,因爲它認爲這一天比比這一年更重要的月份更重要。 – Anigel 2013-05-14 11:03:57

+0

嗯,我解決了我的問題,我只是將日期更改爲ydd謝謝= D – user2303038 2013-05-14 11:05:10

+0

這將工作,但它仍然只需按時間戳進行排序,而不是將時間戳從filemtime轉換爲日期,然後在日期上進行文本排序就簡單得多 – Anigel 2013-05-14 11:08:08

回答

0

我想你應該轉換爲時間戳排序的日期部分。如此簡單的使用filemtime(字符串$文件名)沒有日期(「d/M/YH:我:■」 ...的東西

function sortFunctionASC ($a , $b) { return $a["stamp"] < $b["stamp"]); } 
function sortFunctionDESC($b , $a) { return $a["stamp"] < $b["stamp"]); }