PHP 5.6.0 released

filectime

(PHP 4, PHP 5)

filectime Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode

Beschreibung

int filectime ( string $filename )

Liefert Datum und Uhrzeit der letzten Änderung des Datei Inode.

Parameter-Liste

filename

Pfad zu der Datei.

Rückgabewerte

Gibt Datum und Uhrzeit der letzten Änderung einer Datei zurück, Im Fehlerfall wird FALSE zurückgegeben.. Das Datum wird als UNIX-Timestamp zurückgegeben.

Beispiele

Beispiel #1 Ein filectime() Beispiel

<?php

// Rückgabe z.B.  somefile.txt wurde zuletzt geändert: December 29 2002 22:16:23.

$filename 'somefile.txt';
if (
file_exists($filename)) {
    echo 
"$filename wurde zuletzt geändert: " date("F d Y H:i:s."filectime($filename));
}

?>

Fehler/Exceptions

Im Fehlerfall wird eine E_WARNING ausgegeben.

Anmerkungen

Hinweis:

Anmerkung: Bei den meisten Unix Dateisystemen gilt eine Datei als geändert, sobald ihre Inode-Daten geändert wurden; d.h. wenn die Rechte, Eigentümer, Gruppe, oder andere Metadaten des Inodes aktualisiert werden. Siehe auch filemtime() (das ist was Sie suchen, wenn Sie Fußzeilen mit "Zuletzt Aktualisiert" für Webseiten erstellen möchten) und fileatime().

Hinweis:

Beachten Sie auch, dass in einigen Unix-Texten ctime als die Zeit der Erstellung der Datei beschrieben wird. Das ist falsch. Bei den meisten Unix Dateisystemen gibt es keine Zeitangabe für die Erstellung von Unix Dateien.

Hinweis:

Beachten Sie, dass die zeitliche Auflösung bei verschiedenen Dateisystemen unterschiedlich sein kann.

Hinweis: Die Ergebnisse dieser Funktion werden gecached. Weitere Details erhalten Sie bei clearstatcache().

Tipp

Seit PHP 5.0.0 kann diese Funktion mit einigen URL-Wrappern benutzt werden. Schauen Sie in der Liste unter Unterstützte Protokolle and Wrappers nach, welcher Wrapper die Funktionalität von stat() unterstützt.

Siehe auch

  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung

add a note add a note

User Contributed Notes 8 notes

up
2
soapergem at gmail dot com
4 years ago
Note that on Windows systems, filectime will show the file creation time, as there is no such thing as "change time" in Windows.
up
1
coolkoon at gmail dot com
3 years ago
You should avoid feeding the function files without a path. This applies for filemtime() and possibly fileatime() as well. If you omit the path the command will fail with the warning "filectime(): stat failed for filename.php".
up
1
javi at live dot com
5 years ago
Filemtime seems to return the date of the EARLIEST modified file inside a folder, so this is a recursive function to return the date of the LAST (most recently) modified file inside a folder.

<?php

// Only take into account those files whose extensions you want to show.
$allowedExtensions = array(
 
'zip',
 
'rar',
 
'pdf',
 
'txt'
);

function
filemtime_r($path)
{
    global
$allowedExtensions;
   
    if (!
file_exists($path))
        return
0;
   
   
$extension = end(explode(".", $path));    
    if (
is_file($path) && in_array($extension, $allowedExtensions))
        return
filemtime($path);
   
$ret = 0;
   
     foreach (
glob($path."/*") as $fn)
     {
        if (
filemtime_r($fn) > $ret)
           
$ret = filemtime_r($fn);   
           
// This will return a timestamp, you will have to use date().
    
}
    return
$ret;   
}

?>
up
1
chuck dot reeves at gmail dot com
6 years ago
filectime running on windows reading a file from a samba share, will still show the last modified date.
up
1
StevieMc at example dot com
7 years ago
This method gets all the files in a directory, and echoes them in the order of the date they were added (by ftp or whatever).

<?PHP
function dirList ($directory, $sortOrder){

   
//Get each file and add its details to two arrays
   
$results = array();
   
$handler = opendir($directory);
    while (
$file = readdir($handler)) { 
        if (
$file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){
           
$currentModified = filectime($directory."/".$file);
           
$file_names[] = $file;
           
$file_dates[] = $currentModified;
        }   
    }
      
closedir($handler);

   
//Sort the date array by preferred order
   
if ($sortOrder == "newestFirst"){
       
arsort($file_dates);
    }else{
       
asort($file_dates);
    }
   
   
//Match file_names array to file_dates array
   
$file_names_Array = array_keys($file_dates);
    foreach (
$file_names_Array as $idx => $name) $name=$file_names[$name];
   
$file_dates = array_merge($file_dates);
   
   
$i = 0;

   
//Loop through dates array and then echo the list
   
foreach ($file_dates as $file_dates){
       
$date = $file_dates;
       
$j = $file_names_Array[$i];
       
$file = $file_names[$j];
       
$i++;
           
        echo 
"File name: $file - Date Added: $date. <br/>"";       
    }

}
?>

I hope this is useful to somebody.
up
0
m dot rabe at directbox dot com
4 years ago
Under Windows you can use fileatime() instead of filectime().
up
0
website at us dot kaspersky dot com
7 years ago
Line 37 of the code above has an error.

echo  "File name: $file - Date Added: $date. <br/>""; 

There is an extra "  after the <br/> that needs to be deleted in order for this code to work.
up
0
laurent dot pireyn at wanadoo dot be
12 years ago
If you use filectime with a symbolic link, you will get the change time of the file actually linked to. To get informations about the link self, use lstat.
To Top