filemtime() 是 php 中获取文件最后修改时间最直接的方式,返回 unix 时间戳,需用 date() 格式化;使用前应检查文件存在性和可读性,并注意缓存、权限及跨平台差异。
用 filemtime() 获取文件最后修改时间
PHP 中最直接、最常用的方式就是调用 filemtime() 函数。它返回的是 Unix 时间戳(从 1970-01-01 开始的秒数),不是格式化后的字符串,这点容易误以为“没拿到时间”。
常见错误:直接 echo filemtime('test.txt') 看到一串数字就懵了——其实那是正确结果,只是需要转换。
- 必须确保文件存在且 PHP 有读取权限,否则会触发警告并返回
false - 路径要用绝对路径或相对于当前工作目录的路径;用
__DIR__ . '/data/config.php'比硬写'./data/config.php'更可靠 - 若需格式化显示,立刻接
date('Y-m-d H:i:s', $timestamp),别漏掉第二个参数
filemtime() 和 stat() 的区别在哪
filemtime() 本质是 stat() 的快捷封装,只取 mtime 字段;而 stat() 返回完整数组,包含 atime(访问时间)、ctime(inode 修改时间)等。
性能上几乎无差别,但语义更清晰:只要关心“改了没”,就用 filemtime();需要对比多个时间点(比如判断是否刚被读过又改过),才值得调 stat() 多取几个字段。
立即学习“PHP免费学习笔记(深入)”;