返回文件的最后修改时间,格式是 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;
?>