2009-11-18 35 views

Trả lời

22

Bạn có thể sử dụng chức năng filemtime để có được sửa đổi lần cuối ngày/giờ và sử dụng đó để xem bao nhiêu tuổi các tập tin là.

1

Hãy thử với filemtime()

Hàm này trả về thời gian khi các khối dữ liệu của một tập tin đã được ghi vào, đó là, thời gian khi nội dung của các tập tin đã thay đổi.

int filemtime (string $filename) 
  • filename: Đường dẫn đến tập tin.
// outputs e.g. somefile.txt was last modified: December 29 2002 22:16:23. 

$filename = 'somefile.txt'; 
if (file_exists($filename)) { 
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename)); 
} 
11

Bạn đang tìm kiếm filemtime chức năng

<?php 
// outputs e.g. somefile.txt was last modified: December 29 2002 22:16:23. 

$filename = 'somefile.txt'; 
if (file_exists($filename)) { 
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename)); 
} 
?> 
1

Tôi muốn xem các hàm filemtime() hoặc filectime(). Những người sẽ cung cấp cho bạn lần sửa đổi và lần tạo (tương ứng) của tệp.

2

tôi đào một chút trên web và Stackoverflow (PHP How to find the time elapsed since a date time?) và đây là giải pháp của tôi:

Đó là một câu trả lời đầy đủ cho một đại diện có thể đọc được con người của tuổi tập + kiểm tra để xem nếu file là 2 giờ cũ hay không.

<?php 

function humanTiming ($time) 
{ 
    // to get the time since that moment 
    $time = time() - $time; 

    // time unit constants 
    $timeUnits = array (
     31536000 => 'year', 
     2592000 => 'month', 
     604800 => 'week', 
     86400 => 'day', 
     3600 => 'hour', 
     60 => 'minute', 
     1 => 'second' 
    ); 

    // iterate over time contants to build a human 
    $humanTiming; 
    foreach ($timeUnits as $unit => $text) 
    { 
     if ($time < $unit) 
      continue; 
     $numberOfUnits = floor($time/$unit); 

     // human readable token for current time unit 
     $humanTiming = $humanTiming.' '.$numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':''); 

     // compute remaining time for next loop iteration 
     $time -= $unit*$numberOfUnits; 
    } 
    return $humanTiming; 
} 


$filename = '/path/to/your/file.extension'; 

if (file_exists($filename)) 
{ 
    echo 'Now = '.date ("Y-m-d H:i:s.", time()); 
    echo "<br/>$filename was last modified on " . date ("Y-m-d H:i:s.", filemtime($filename)); 
    $time = strtotime('2010-04-28 17:25:43'); 
    $time = filemtime($filename); 
    echo '<br/>File age is '.humanTiming($time).'.'; 

    $elapsedTime = time()-filemtime($filename); 

    echo '<br/>Is file older than 2 hours? '.(($elapsedTime<(2*3600))?'No':'Yes').'.'; 

} 

?> 

Dưới đây là sản phẩm đứng về phía tôi:

Now = 2013-01-29 09:10:12. 
/path/to/your/file.extension was last modified on 2013-01-29 08:07:52. 
File age is 1 hour 2 minutes 20 seconds. 
Is file older than 2 hours? No. 
89
if (time()-filemtime($filename) > 2 * 3600) { 
    // file older than 2 hours 
} else { 
    // file younger than 2 hours 
} 
+4

Tôi nghĩ rằng điều này nên được chấp nhận, vì @anneb đã cung cấp mã đầy đủ. – nmnsud

3

Hãy nhận biết rằng trên NAS/SAN kho thời gian tập tin của một tập tin up-to-date có thể khác nhau từ PHP time(), vì các kho lưu trữ đó có thể có đồng hồ riêng của chúng. Tôi nghĩ rằng cấu hình như vậy là tỷ lệ, nhưng nó làm tôi đau đầu.

Các vấn đề liên quan