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.
getlastmod
(PHP 4, PHP 5)
getlastmod — Gets time of last page modification
Description
int getlastmod
( void
)
Gets the time of the last modification of the current page.
If you're interested in getting the last modification time of a different file, consider using filemtime().
Return Values
Returns the time of the last modification of the current
page. The value returned is a Unix timestamp, suitable for
feeding to date(). Returns FALSE on error.
Examples
Example #1 getlastmod() example
<?php
// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod());
?>
See Also
- date() - Format a local time/date
- getmyuid() - Gets PHP script owner's UID
- getmygid() - Get PHP script owner's GID
- get_current_user() - Gets the name of the owner of the current PHP script
- getmyinode() - Gets the inode of the current script
- getmypid() - Gets PHP's process ID
- filemtime() - Gets file modification time
luca dot delpivo at gmail dot com ¶
1 year ago
Moro ¶
10 months 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;
}
?>
timeflys at users dot sourceforget dot net ¶
10 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.
<?php
//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());
print "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.
<?php
require 'HTTP/Request.php';
$r = new HTTP_Request('http://www.sample.com/page.php');
$r->sendRequest();
$response_headers = $r->getResponseHeader();
print $response_headers["last-modified"];
?>
erik dot stetina at gmail dot com ¶
1 year ago
function for displaying last modification time accross more direcotries. e.g. to display last modification date in "about" section of your web page
<?php
function array_prefix_values($prefix, $array)
{
$callback = create_function('$s','return "'.$prefix.'".$s;');
return array_map($callback,$array);
}
function get_last_update()
{
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;
}
}
return date("Ymd",$maxtimestamp)." ($maxfilename)";
}
print "last update: ".get_last_update("./lib/", "./css/", "./lang/");
?>
OUTPUT:
last update: 20110927 (./lang/sk.php)
Ant P. ¶
3 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.
rwruck ¶
8 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'])
Anonymous ¶
8 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);
?>
kworthington ([no@spam)] linuxmaildotorg ¶
10 years ago
I was just informed of a workaround for the Apache 2.0 issue, do:
echo "Last modified: " . date("D F d Y h:i:s A", filemtime($_SERVER["SCRIPT_FILENAME"]));
Thanks to: Edward S. Marshall
Richard Anderson(r85anderson at yahoo dot com) ¶
10 years ago
for includes....
<?php
//include.php
$file = __FILE__;
$lastmod = date("M d, Y @ h:ia", filemtime($file));
?>
<?php
//footer.php
echo("page last modified: $lastmod");
?>
[EDIT by danbrown AT php DOT net: Remember that $lastmod must not be a variable that is set or unset anywhere else in the script, or it will not work as expected when printed from the footer.]
