ach verdammt..
PHP-Code:
// datums formate festlegen
define('MY_DATE_FORMAT', 'Y-m-d');
define('MY_DATETIME_FORMAT', MY_DATE_FORMAT.' H:i:s');
// daten vorhaltendes array anlegen
$sortableFiles = array();
// traversionsquelle erzeugen ( den pfad in der Klammer anpassen! )
$directoryData = glob('path/to/dir');
// Sorting "Lambda" für Dateien ( Callback-Closure genannt )
$fileSortingLambda = function ( $current, $next ) {
// Quellen erzeugen ( DateTime )
$current = date_create_from_format(MY_DATETIME_FORMAT, $current);
$next = date_create_from_format(MY_DATETIME_FORMAT, $next);
// vergleichen
if ( $current == $next ) return 0; // ist gleich, null zurück geben
return $current > $next ? -1 : 1; // ist ungleich, -1 aufsteigen lassen, 1 absteigen lassen
};
// Sorting "Lambda" für Datums-Gruppen ( Callback-Closure Nr.2 )
$dateSortingLambda = function ( $current, $next ) use ( $fileSortingLambda ) {
// use ( ... ) besagt, das man andere Variablen außerhalb der Funktion nutzen, aber nicht zwingend übergeben lassen will
// $fileSortingLambda-Closure adaptieren und Zeit genullt an Datum anhängen.
return $fileSortingLambda($current.' 00:00:00', $next.' 00:00:00');
};
// traversion einleiten
foreach ( $directoryData as $curFile ) {
// Datum für Gruppe erzeugen nach Konstanter Formatvorlage
$date = date(MY_DATE_FORMAT, filemtime($curFile));
// Datum + Zeit Punkt für Datei-Einträge nach Konstanter Formatvorlage erzeugen
$dateTime = date(MY_DATETIME_FORMAT, filemtime($curFile));
// Daten Array hinzufügen
$sortableFiles[$date][$curFile] = $dateTime;
// aktuelle Gruppe sortieren
usort( $sortableFiles[$date], $fileSortingLambda );
}
// Gruppen sortieren
uksort( $sortableFiles, $dateSortingLambda );
So, nu aber.