在php中,手动fileatime被定义为"文件的最后访问时间"。但在我的代码中,我打开并读取了文件内容。但fileatime给我的日期是2月16日。这意味着我最后一次访问该文件是在2月16号??。但我现在访问了这个文件。为什么它不给我当前的日期??
set_include_path('c://Users/shimantta/Desktop/');
$file='hehe.txt';
$open=fopen($file,'r');
echo fread($open,filesize($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",fileatime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file));
我将被复制到这里
上次修改时间:2015年2月21日19:57:21。
上次修改时间:2015年2月16日05:56:16。
上次修改时间:2015年2月21日19:57:21。
文件访问时间实际上应该是最后一次访问文件。
问题是,在今天的许多系统上,访问时间没有得到维护。例如,在装载(例如fstab)时,可以声明访问时间根本没有更新。
在许多系统上,此功能被禁用,因为当经常进行小的更改(如更改文件的访问时间)时,SSD会磨损得更快。我想,你得到的访问时间就是创建时间,因为在创建时,时间只写一次,从不更新。
因此,您只有一个文件的修改时间和创建时间(也应该作为单独的时间戳提供)。
filemtime()
会为您提供上次更改内容的时间。
以及手册中的一句话:
此函数返回写入文件的数据块的时间,即文件内容发生更改的时间
编辑:
现在我看到你在问fileatime()
。fopen()
不会像您预期的修改时间那样更新。您希望使用touch()
来更新修改时间。