phpday 2025 - Call For Papers

getlastmod

(PHP 4, PHP 5, PHP 7, PHP 8)

getlastmod获取页面最后修改的时间

说明

getlastmod(): int|false

获取执行的主脚本的最后修改时间。

如果你对其他文件的最后修改时间的感兴趣,可考虑使用 filemtime()

参数

此函数没有参数。

返回值

返回当前页面最后修改的时间。这个值是一个 Unix 时间戳,可以传入 date()。 错误时返回 false

示例

示例 #1 getlastmod() 示例

<?php
// 输出类似 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod());
?>

参见

添加备注

用户贡献的备注 5 notes

up
12
luca dot delpivo at gmail dot com
12 years ago
With better words getlastmod() returning the last time the script in which it is being called was modified, it does not require or use a parameter.
up
4
Moro
12 years ago
Return latest mod time of all included files:

<?php
function get_page_mod_time() {
$incls = get_included_files();
$incls = array_filter($incls, "is_file");
$mod_times = array_map('filemtime', $incls);
$mod_time = max($mod_times);

return
$mod_time;
}
?>
up
2
Ant P.
14 years ago
If you use register_shutdown_function() on certain SAPIs, various filesystem-related things inside the shutdown function might do unexpected things, one of which being this function can return false.

On the other hand getlastmod() apparently caches the return value, so if you use it at least once in normal code it should work for the remainder of the request.
up
-1
rwruck
20 years ago
DO NOT use this function unless you are absolutely sure both your Apache and PHP have been compiled with the same value for -DFILE_OFFSET_BITS.

If not, this function will return the access time (or maybe even garbage) instead of the modification time due do Apache and PHP using different versions of the stat structure.

This is true regardless of Apache and PHP version.

To be on the safe side, always use the workaround already posted below:
filemtime($_SERVER['SCRIPT_FILENAME'])
up
-2
Anonymous
20 years ago
Setting the 'Last-Modified' header:
<?php
setlocale
(LC_TIME, "C");
$ft = filemtime ('referencefile');
$localt = mktime ();
$gmtt = gmmktime ();
$ft = $ft - $gmtt + $localt;
$modified = strftime ("%a, %d %b %Y %T GMT", $ft);
?>
To Top