2013-05-14 68 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"]); }