Я знаю, что эта тема очень старая, но, если кто-то ищет ответ, как я, я публикую свое решение.
Это решение работает, если вы не возражаете против некоторых дополнительныхданные в начале вашего файла.
По сути, идея состоит в том, чтобы, если файл не существует, создать его и добавить текущую дату в первой строке.Затем вы можете прочитать первую строку с помощью fgets(fopen($file, 'r'))
, превратить его в DateTime
объект или что-нибудь еще (вы можете явно использовать его необработанным, если вы не сохранили его в странном формате) и вуаля - у вас есть дата создания!Например, мой сценарий обновления моего файла журнала каждые 30 дней выглядит следующим образом:
if (file_exists($logfile)) {
$now = new DateTime();
$date_created = fgets(fopen($logfile, 'r'));
if ($date_created == '') {
file_put_contents($logfile, date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND | LOCK_EX);
}
$date_created = new DateTime($date_created);
$expiry = $date_created->modify('+ 30 days');
if ($now >= $expiry) {
unlink($logfile);
}
}