2013-05-14 6 views
0

У меня проблема, я создал галерею, она отлично работает, но функция, которая сортирует изображения, зависит от того, что они ДЕНЬ только игнорируют рты и минуты ... Форма, используемая для сортировки is ::::: | d/m/Y H: i: 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

+0

Ну, я решил свою проблему, я просто изменил дату на ymd, спасибо в любом случае = D – user2303038

+0

Это будет работать, но все равно будет намного проще и быстрее просто сортировать по метке времени, вместо того, чтобы преобразовывать метку времени из файла в дату, а затем сортировать текст по дате – Anigel

ответ

0

я думаю, что вы должны преобразовать дату в TIMESTAMP для сортировки. так просто использовать filemtime (строка $ имя файла) без даты («d/m/YH: Я: ■» ... материал

function sortFunctionASC ($a , $b) { return $a["stamp"] < $b["stamp"]); } 
function sortFunctionDESC($b , $a) { return $a["stamp"] < $b["stamp"]); } 
Смежные вопросы