現在の位置: ホーム> 最新記事一覧> GetTimeOfdayを使用して、ファイルの変更時差を取得します

GetTimeOfdayを使用して、ファイルの変更時差を取得します

gitbox 2025-05-26

1。基本概念


  • UNIXタイムスタンプの形式(第2レベル)の形式で、ファイルの最後の変更時間を返します。

  • GetTimeOfday($ return_float = false)
    現在の時間情報を返します。 $ return_floattrueに設定されている場合、時間()よりも高い精度で、秒およびマイクロ秒を含むフローティングポイント番号が返されます。


2。実装のアイデア

  1. Fileemtimeを使用して、ファイルの最後の変更時間(秒)を取得します。

  2. GetTimeOfday(True)を使用して、現在の時間(マイクロ秒を含む秒数)を取得します。

  3. 2つの差を計算し、ファイルの変更時間と現在の時間の間の秒の差を取得します。

  4. 違いは、秒、分、時間、さらに詳細なより読みやすい形式に変換できます。


3。サンプルコード

<?php
// ファイルパスを想定します
$file = '/path/to/your/file.txt';

// ファイルの変更の最後の時間を取得します(2番)
$file_mtime = filemtime($file);

// 現在の時間を取得します(包含微2番的フローティングポイント番号2番)
$current_time = gettimeofday(true);

// 時差を計算します,单位为2番(フローティングポイント番号)
$time_diff = $current_time - $file_mtime;

// 出力時間差,予約する3位小数
echo "ファイルが最後に変更されたときは、 " . number_format($time_diff, 3) . " 2番。";

// より理解しやすい形式として表示したい場合,コンバートを実行できます
$minutes = floor($time_diff / 60);
$seconds = $time_diff % 60;

echo "\n約 {$minutes} ポイント {$seconds} 2番前修改的。";
?>

4。注意すべきこと

  • Fileemtimeは、マイクロ秒部品を含まないファイルのUnixタイムスタンプを返します。そのため、時間の精度は秒です。

  • GetTimeOfday(true)は、より高い精度でマイクロ秒で現在の時間を返します。

  • ファイルの変更時間には2番目のレベルの精度のみがあるため、マイクロ秒の部分は、実際に時差を計算するときにファイルの変更時間に影響しませんが、現在の時間の精度を改善するために使用できます。

  • ファイルが最近変更されたか、更新期間のために検出されたかを監視するのに適しています。


5。拡張例:設定された時間後にファイルが変更されていないかどうかの動的監視

<?php
$file = '/path/to/your/file.txt';
$max_interval = 3600; // 1時間,单位2番

$file_mtime = filemtime($file);
$current_time = gettimeofday(true);
$time_diff = $current_time - $file_mtime;

if ($time_diff > $max_interval) {
    echo "ファイルは超えています 1 時間没有被修改。";
} else {
    echo "ファイルは最近です 1 時間内有修改。";
}
?>

6。概要

GetTimeOfday(True)Fileemtime関数を組み合わせることで、ファイル変更時間と現在の時間の正確な時差計算を簡単に実装できます。 FILEMTIMEはファイルを最終変更時間を提供し、 GetTimeOfDayは高精度の現在の時間を提供し、2つの組み合わせはシンプルで実用的なファイル時間監視機能を実現します。


ドメイン名の交換の例

<?php
$url = 'https://gitbox.net/path/to/resource';
echo "訪問URLはい:" . $url;
?>