CascadiaPHP 2024


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

getlastmodObtiene la hora de la última modificación de la página


getlastmod(): int

Obtiene la hora de la última modificación del script principal de la ejecución.

Si está interesado en obtener la hora de la última modificación de un archivo diferente, considere el uso de filemtime().

Valores devueltos

Devuelve la hora de la última modificación de la página actual. El valor devuelto es una marca de tiempo Unix, apropiada para ser pasada a date(). Devuelve false en caso de fallo.


Ejemplo #1 Ejemplo de getlastmod()

// imprime p.ej. 'Ultima modificación: March 04 1998 20:43:59.'
echo "Ultima modificación: " . date ("F d Y H:i:s.", getlastmod());

Ver también

  • date() - Dar formato a la fecha/hora local
  • getmyuid() - Obtiene el UID del dueño del script PHP
  • getmygid() - Obtener el GID del dueño del script PHP
  • get_current_user() - Obtiene el nombre del propietario del script PHP actual
  • getmyinode() - Obtiene el inode del script actual
  • getmypid() - Obtiene el ID del proceso PHP
  • filemtime() - Obtiene el momento de la última modificación de un archivo

add a note

User Contributed Notes 7 notes

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.
12 years ago
Return latest mod time of all included files:

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);

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.
19 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:
20 years ago
Setting the 'Last-Modified' header:
(LC_TIME, "C");
$ft = filemtime ('referencefile');
$localt = mktime ();
$gmtt = gmmktime ();
$ft = $ft - $gmtt + $localt;
$modified = strftime ("%a, %d %b %Y %T GMT", $ft);
erik dot stetina at gmail dot com
12 years ago
function for displaying last modification time accross more direcotries. e.g. to display last modification date in "about" section of your web page

function array_prefix_values($prefix, $array)
$callback = create_function('$s','return "'.$prefix.'".$s;');

if (
func_num_args() < 1 ) return 0;
$dirs = func_get_args();
$files = array();
foreach (
$dirs as $dir )
$subfiles = scandir($dir);
$subfiles = array_prefix_values($dir,$subfiles);
$subfiles = array_filter($subfiles,"is_file");
$files = array_merge($files,$subfiles);
$maxtimestamp = 0;
$maxfilename = "";
foreach (
$files as $file )
$timestamp = filemtime($file);
if (
$timestamp > $maxtimestamp )
$maxtimestamp = $timestamp;
$maxfilename = $file;
date("Ymd",$maxtimestamp)." ($maxfilename)";

"last update: ".get_last_update("./lib/", "./css/", "./lang/");

last update: 20110927 (./lang/sk.php)
timeflys at users dot sourceforget dot net
21 years ago
I found issues using getlastmod() to test whether or not I was successful in setting the Last Modified date in the header. The code below shows the same Last Modified date before and after I set the Last-Modified header.

//True modified date
$modified = date ("F d Y H:i:s.", getlastmod());

//artificial modified date - sent to header
$last_modified = gmdate('D, d M Y H:i:s T', (time() - 43200));

//caching prevention
header("Last-Modified: $last_modified GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0

$getlast_modified = date ("F d Y H:i:s.", getlastmod());

"True modified date(Before): $modified <p /> Date sent to header(After): $getlast_modified";

I then used the PEAR, HTTP_Request class which worked, the Last-Modified date updates everytime it is requested, the desired effect.

require 'HTTP/Request.php';
$r = new HTTP_Request('');
$response_headers = $r->getResponseHeader();
To Top