Php get file create time
After examining various things, I found that the following is a function that can get the date from a file.
http://php.net/manual/en/function.filectime.php
http://php.net/manual/en/function.filemtime.php
http://php.net/manual/en/function.fileatime.php
Therefore, using these, the date of the newly created test.php was displayed as follows.
$c = date ("Y/m/d H: i", filectime ("test.php")); $m = date ("Y/m/d H: i", filemtime ("test.php")); $a = date ("Y/m/d H: i", fileatime ("test.php")); echo "filectime:". $c; echo "<br>filemtime:". $m; echo "<br>fileatime:". $a;
Subsequently, if you change the permission of text.php, filectime ($c) will be updated,
Fileatime ($a) was updated when accessing test.php with a browser.
filemtime says «Get file update time» on the explanation site, and I didn’t know how to get the date when a new file was created after all.
Is there a way to get the date when a new file was created?
I tried searching a lot, but I couldn’t find it.
Can anyone tell me who you know?
Note: On some Unixes, file ctime is referred to as file creation time. This is wrong. Many Unix file systems do not have Unix file creation time.
There is no concept of file creation time in the file system normally used in Linux.
As a result, there is no way on the file system to get the date and time when the file was first created after i-node was updated. There is no way to get from PHP.
(If you really want to get it, you need to write the creation date and time as text data in the file itself, or prepare data to manage the creation time of the file.) I haven’t tried it, but it feels like NTFS.
Reference 1: ctime is not always the file creation time Add Star Reference 2: How to falsify file time stamps
Related articles
- php — i want to get the file size of a blob file stored in the database
- php — how to get call log with twilio rest_api
- php — how to get multidimensional json data with javascript
- php — i don’t know how to get the characters from sql at the end at the login home page
- php — how can i create a new array from an array?
- swift — how to get api value on endpoint with pk
- php — how to send to bcc address at the same time?
- macos (osx) — how to open a file on the mac-catalyst app
- javascript — i don’t know how to get rakuten api json data
- php — i don’t know how to connect with mysql
- php — how to incorporate pagination
- php — how to load your own js file on the wordpress post page
- php — how to make a calendar app
- javascript — how to get the progress on the server side
- c # — how to get the closest object
- i want to get the name of the laravel php zip file
- call any php file in the sidebar with a shortcode
- google apps script — how to get the value of the merged cell
- oracle — how to get the number of select with pro * c
- php — please tell me how to use explode
filemtime
Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.
Список параметров
Возвращаемые значения
Возвращает время последнего изменения указанного файла или false в случае возникновения ошибки. Время возвращается в формате временной метки Unix, который подходит для передачи в качестве аргумента функции date() .
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примеры
Пример #1 Пример использования функции filemtime()
// Пример вывода: В последний раз файл somefile.txt был изменён: December 29 2002 22:16:23.
?php
$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) echo «В последний раз файл $filename был изменён: » . date ( «F d Y H:i:s.» , filemtime ( $filename ));
>
?>
Примечания
Замечание:
Учтите, что обработка времени может отличаться в различных файловых системах.
Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache() .
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat() , смотрите в разделе Поддерживаемые протоколы и обёртки.
Смотрите также
- filectime() — Возвращает время изменения индексного дескриптора файла
- stat() — Возвращает информацию о файле
- touch() — Устанавливает время доступа и модификации файла
- getlastmod() — Получает время последней модификации страницы
User Contributed Notes 30 notes
This is a very handy function for dealing with browser caching. For example, say you have a stylesheet and you want to make sure everyone has the most recent version. You could rename it every time you edit it, but that would be a pain in the ass. Instead, you can do this:
By appending a GET value (the UNIX timestamp) to the stylesheet URL, you make the browser think the stylesheet is dynamic, so it’ll reload the stylesheet every time the modification date changes.
To get the last modification time of a directory, you can use this:
$getLastModDir = filemtime("/path/to/directory/.");
Take note on the last dot which is needed to see the directory as a file and to actually get a last modification date of it.
This comes in handy when you want just one ‘last updated’ message on the frontpage of your website and still taking all files of your website into account.
«this is not (necessarily) correct, the modification time of a directory will be the time of the last file *creation* in a directory (and not in it’s sub directories).»
This is not (necessarily) correct either. In *nix the timestamp can be independently set. For example the command «touch directory» updates the timestamp of a directory without file creation.
Also file removal will update the timestamp of a directory.
To get the modification date of some remote file, you can use the fine function by notepad at codewalker dot com (with improvements by dma05 at web dot de and madsen at lillesvin dot net).
But you can achieve the same result more easily now with stream_get_meta_data (PHP>4.3.0).
However a problem may arise if some redirection occurs. In such a case, the server HTTP response contains no Last-Modified header, but there is a Location header indicating where to find the file. The function below takes care of any redirections, even multiple redirections, so that you reach the real file of which you want the last modification date.
// get remote file last modification date (returns unix timestamp)
function GetRemoteLastModified ( $uri )
// default
$unixtime = 0 ;
$fp = fopen ( $uri , «r» );
if( ! $fp )
$MetaData = stream_get_meta_data ( $fp );
foreach( $MetaData [ ‘wrapper_data’ ] as $response )
// case: redirection
if( substr ( strtolower ( $response ), 0 , 10 ) == ‘location: ‘ )
$newUri = substr ( $response , 10 );
fclose ( $fp );
return GetRemoteLastModified ( $newUri );
>
// case: last-modified
elseif( substr ( strtolower ( $response ), 0 , 15 ) == ‘last-modified: ‘ )
$unixtime = strtotime ( substr ( $response , 15 ) );
break;
>
>
fclose ( $fp );
return $unixtime ;
>
?>
There’s a deeply-seated problem with filemtime() under Windows due to the fact that it calls Windows’ stat() function, which implements DST (according to this bug: http://bugs.php.net/bug.php?id=40568). The detection of DST on the time of the file is confused by whether the CURRENT time of the current system is currently under DST.
This is a fix for the mother of all annoying bugs:
function GetCorrectMTime ( $filePath )
$time = filemtime ( $filePath );
$isDST = ( date ( ‘I’ , $time ) == 1 );
$systemDST = ( date ( ‘I’ ) == 1 );
return ( $time + $adjustment );
>
?>
Dustin Oprea
filectime
Возвращает время изменения индексного дескриптора (inode) файла.
Список параметров
Возвращаемые значения
Возвращает время последнего изменения файла или false в случае возникновения ошибки. Время возвращается в формате временной метки Unix.
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примеры
Пример #1 Пример использования функции filectime()
// Пример вывода: Файл somefile.txt в последний раз был изменён: December 29 2002 22:16:23.
$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) echo «Файл $filename в последний раз был изменён: » . date ( «F d Y H:i:s.» , filectime ( $filename ));
>
Примечания
Замечание:
Примечание. На большинстве платформ Unix, файл считается изменённым, если изменены данные его индексного дескриптора, что включает информацию о правах на файл, о его владельце, группе и другие метаданные, содержащиеся в индексном дескрипторе. Обратитесь также к описаниям функций filemtime() (данная функция полезна для создания сообщений типа: «Последнее обновление от . » на веб-страницах) и fileatime() .
Замечание:
Учтите также, что в некоторых описаниях работы Unix ctime представляется как время создания файла. Это неверно. В большинстве файловых систем Unix понятие времени создания файла отсутствует.
Замечание:
Учтите, что обработка времени может отличаться в различных файловых системах.
Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache() .
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat() , смотрите в разделе Поддерживаемые протоколы и обёртки.
Смотрите также
User Contributed Notes 9 notes
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).
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 );
//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 .
«»;
>
I hope this is useful to somebody.