International PHP Conference Berlin 2025

getlastmod

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

getlastmod最終更新時刻を取得する

説明

getlastmod(): int|false

実行中のスクリプト本体の最終更新時刻を取得します。

別のファイルの最終更新時刻が知りたい場合は、 filemtime() を使用してください。

パラメータ

この関数にはパラメータはありません。

戻り値

現在のページの最終更新時刻を返します。 この値は Unix のタイムスタンプで、そのまま date() に渡す事ができます。エラーの場合は false を返します。

例1 getlastmod() の例

<?php
// たとえば、'最終更新時刻:March 04 1998 20:43:59.' を出力します
echo "最終更新時刻: " . date ("F d Y H:i:s.", getlastmod());
?>

参考

  • date() - Unixタイムスタンプを書式化する
  • getmyuid() - PHP スクリプト所有者のユーザー ID を取得する
  • getmygid() - PHP スクリプトの所有者の GID を得る
  • get_current_user() - 現在の PHP スクリプトの所有者の名前を取得する
  • getmyinode() - 現在のスクリプトの inode を取得する
  • getmypid() - PHP のプロセス ID を取得する
  • filemtime() - ファイルの更新時刻を取得する

add a note

User Contributed Notes 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