PHP получить время создания каталога

есть ли в любом случае, чтобы найти созданное время каталога в php? Я пытался filectime но это работает только на файлах.

9 ответов


он должен работать для каталогов, это то, что я получаю:

$ php -r "echo filectime(__DIR__);"
1311596297

в unix папка также является файлом. Так что это должно сработать и для этого

$folder = 'includes';

echo date ("F d Y H:i:s.", filemtime($folder));

выход

October 06 2010 20:20:58.

вы можете использовать PHP функция stat:

собирает статистику файла с именем filename. Если filename является символической ссылкой, статистика из самого файла, а не из символической ссылки.

пример:

<?php
    $stat = stat('/your/path');
    echo $stat['ctime'];
?>

он возвращает время создания как метку времени Unix.



Если (это доза не работает) попробуй!--1-->clearstatcache(); перед filectime


$filename='dirname';
date ("F d Y H:i:s.", filectime($filename))

он будет работать.


попробуй такое

$filename = ' media/';

echo "$filename было создано изменено: ". дата ("F d Y H: i: s.", filectime ($filename));


Я тестировал функцию filectime () и filemtime() на сервере Linux, и они правильно работать с каталогами тоже в том смысле, что они возвращают метку времени.

затем я попытался получить последнюю измененную дату каталога, переименовав его через FTP, а затем проверив его снова, и вот странная вещь, которая произошла:

  1. метка времени даты создания была обновлена с текущим временем
  2. дата последнего изменения не была обновлена на все!--6-->

Я думаю, что это могло произойти из-за манипуляции с файлами FTP вместо прямой манипуляции через командную строку или графический интерфейс системы.

в Windows дата создания и дата последнего изменения не изменяются при переименовании каталога.

для ваших тестов я также предлагаю вам взглянуть на функцию clearstatcache () (которую я также использовал в своем тесте), чтобы очистить кэш PHP файловой системы информация.


нет. Не надежно.

потому что ctime не о создании, а об изменении, как указано в комментарии Гордона. Так что пока filectime() работает на каталогах (по крайней мере, на машине Unix), скорее всего, он не даст вам дату, которую вы ищете. См. примечания на PHP Doc страница для filectime():

обратите внимание также, что в некоторых текстах Unix ctime файла называется временем создания файла. Это неправильно. В большинстве файловых систем Unix нет времени на создание файлов Unix.

другими словами, создание нового файла в каталоге, скорее всего, изменит ctime каталога. Если вам действительно нужно отслеживать создание время, вам нужно реализовать домашнее хозяйство самостоятельно.