【发布时间】:2013-05-14 11:02:09
【问题描述】:
我有一个问题,我创建了一个画廊,它工作得很好,但是对图像进行排序的功能取决于他们 DAY 只是它忽略了嘴和分钟...... 用于排序的形式是 ::::: | d/m/Y H:i:s |,但是当我移动到另一个嘴巴时,我失去了订单,因为它只取决于那一天,因为我说过我希望它也考虑到嘴巴。
$date = date ("d/m/Y H:i:s",filemtime($dir_mini)); 函数 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") ;}
【问题讨论】:
-
使用时间戳进行排序,因为它始终是一致的,因为 DMY 上的字符串排序总是会提供不一致的结果,因为它认为日期比月份更重要,而月份比年份更重要。跨度>
-
好吧,我解决了我的问题,我只是将日期更改为 y-m-d,谢谢 =D
-
这可行,但仅按时间戳排序仍然会更简单快捷,而不是将时间戳从 filemtime 转换为日期,然后对日期进行文本排序
标签: php arrays date sorting gallery