[PHP] Sortowanie katalogów po dacie utworzenia


(Sebastianp88) #1

Witam wszystkich,

siedzę już trochę nad tym problemem. Otóż na serwerze znajdują się katalogi. Odczytanie nazw samych katalogów znajdujących się na serwerze odbywa się na podstawie poniższego kodu:

while(($file = readdir($fd)) !== false){

                    if($file != '.' && $file != '..'){

                        if(is_dir($dir.$file))

                            $foldery[] = $file;

                    }

                }

Pytanie brzmi w jaki sposób posortować te nazwy według ich utworzenia - zwykła metoda sort sortuje alfabetycznie, a ja potrzebuje posortować je datami. Będę wdzięczny za pomoc.

P.S.

Nie oczekuje gotowego rozwiązania, tylko informacji z jakiej funkcji skorzystać i jak to ewentualnie przerobić aby działało tak jak potrzebuje


(Grzelix) #2

http://www.php.net/manual/en/function.filectime.php


(Sebastianp88) #3

pudło, czego kolwiek bym nie zrobił dostaje data “powstania unixa” 1970 0:00:00

przykładowo:

echo $foldery[$i]." ".date("G:i:s d.m.Y", filectime($foldery[$i]));

(Grzelix) #4

“U mnie działa” tzn:

<?php

foreach (glob("D:/files/download/*") as $path) { //configure path

     $docs[$path] = filectime($path);

 } asort($docs); // sort by value, preserving keys


foreach ($docs as $path => $timestamp) {

     print date("d. M. Y: ", $timestamp);

     print ''. basename($path) .'
';

 }

?>[/code]

powyższy kod daję poprawny wynik

  1. Jaki masz system?

  2. Jaką wersję php?

te rzeczy musisz sprawdzić i poczytać czy nie musisz coś zmienić. Ja empirycznie potwierdzam że dana funkcja działa (przynajmniej w moim przypadku).

Jeszcze taki szczegół: