2009-07-20 3 views
2

я есть протекающий коддобавьте пять минут в функцию filemtime (php)!

$LastModified = filemtime($somefile) ; 

я хочу добавить десять минут до времени последнего изменения и сравнить с текущим временем, то если $ LastModified + 10 минут равно текущему времени удаления файла. Как мне это сделать ?! Я немного смущаюсь с отметкой времени unix.

ответ

4

Поскольку временная метка UNIX выражается в "секундах с начала 1970", просто добавьте пять минут в секундах:

$LastModPlusFiveMinutes = $lastModified + (60 * 5); 

Или, может быть более удобным для чтения:

$LastModPlusFiveMinutes = strtotime("+5 minutes", $lastModified); 
1

В Unix, метка времени это количество секунд, прошедших с 1 янв 1970.

Поэтому, чтобы добавить 10 минут, нужно добавить 600 (секунд). Чтобы получить текущее время звонка time().

например.

$LastModified = filemtime($somefile); 

if ($LastModified+600 <= time()) 
{ 
    // delete the file 
} 

(Обратите внимание, что вы сказали «если $ LastModified + 10 минут равно текущему времени удалить файл» - я полагаю, вы на самом деле имел в виду, равную или меньше, в противном случае замените < = с == выше).

0
$LastModified = filemtime($somefile); 
$now = time(); 
if(strtotime($LastModified.'+10 minutes') >= $now){ 
    // delete the file. 
} 

Это должно сделай это.

+0

я думаю, что вы имели в виду: если (StrToTime ($ LastModified '+ 10 минут')> = $ в настоящее время.) –

+0

гах, вы правы - спасибо! (исправлено) – inkedmn

+0

Это старый, но вы имели в виду 'filemtime', у вас есть filemetime. :) –

0

Вы писали 5 минут в теме и 10 минут в контексте. Во всяком случае здесь код

$diff = time() - $LastModified ; 
if($diff >= 10 * 60){ // don't use ==, you may not find the right second.. 
    //action 
}