返回文件的最後修改時間,格式是Unix 時間戳(秒級別)。
gettimeofday($return_float = false)
返回當前時間信息。如果$return_float設為true ,會返回一個浮點數,包含秒和微秒,精度比time()更高。
使用filemtime獲取文件最後修改時間(秒級)。
使用gettimeofday(true)獲取當前時間(浮點秒數,包含微秒)。
計算兩者的差值,得到文件修改時間與當前時間之間的秒數差。
可以將差值轉化為更易讀的格式,比如秒、分鐘、小時,甚至更詳細。
<?php
// 假設文件路徑
$file = '/path/to/your/file.txt';
// 獲取文件最後修改時間(秒)
$file_mtime = filemtime($file);
// 獲取當前時間(包含微秒的浮點數秒)
$current_time = gettimeofday(true);
// 計算時間差,單位為秒(浮點數)
$time_diff = $current_time - $file_mtime;
// 輸出時間差,保留3十進制數字
echo "文件最後修改時間距現在約為 " . number_format($time_diff, 3) . " 秒。";
// 如果想顯示為更易懂的格式,可以進行轉換
$minutes = floor($time_diff / 60);
$seconds = $time_diff % 60;
echo "\n大約是 {$minutes} 分 {$seconds} 秒前修改的。";
?>
filemtime返回的是文件的Unix 時間戳,不包含微秒部分,因此時間精度到秒。
gettimeofday(true)返回的是帶微秒的當前時間,精度更高。
由於文件修改時間只有秒級別精度,實際計算時間差時,微秒部分不會影響文件修改時間,但可用來提升當前時間的精度。
適合用於監控文件是否最近被修改或檢測文件的更新時長。
<?php
$file = '/path/to/your/file.txt';
$max_interval = 3600; // 1小時,單位秒
$file_mtime = filemtime($file);
$current_time = gettimeofday(true);
$time_diff = $current_time - $file_mtime;
if ($time_diff > $max_interval) {
echo "文件已經超過 1 小時没有被修改。";
} else {
echo "文件在最近 1 小時内有修改。";
}
?>
結合gettimeofday(true)和filemtime函數可以輕鬆實現文件修改時間和當前時間的精確時間差計算。 filemtime提供文件最後修改時間, gettimeofday提供高精度當前時間,二者結合實現了簡單而實用的文件時間監測功能。
<?php
$url = 'https://gitbox.net/path/to/resource';
echo "訪問的URL是:" . $url;
?>