Document: lastModified property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The lastModified
property of the Document
interface returns a string containing the date and local time on which the current document
was last modified.
Value
A string.
Examples
Simple usage
This example alerts the value of lastModified
.
alert(document.lastModified);
// returns: Tuesday, December 16, 2017 11:09:42
Transforming lastModified into a Date object
This example transforms lastModified
into a Date
object.
let oLastModif = new Date(document.lastModified);
Transforming lastModified into milliseconds
This example transforms lastModified
into the number of milliseconds since
January 1, 1970, 00:00:00, local time.
let nLastModif = Date.parse(document.lastModified);
Notes
Note that as a string, lastModified
cannot easily be used for
comparing the modification dates of documents. Here is a possible example of how to show
an alert message when the page changes (see also: JavaScript cookies API):
// Match 'timestamp' in 'last_modif=timestamp'
// e.g. '1687964614822' in 'last_modif=1687964614822'
const pattern = /last_modif\s*=\s*([^;]*)/;
if (
Date.parse(document.lastModified) >
(parseFloat(document.cookie.match(pattern)?.[1]) || 0)
) {
document.cookie = `last_modif=${Date.now()}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=${
location.pathname
}`;
alert("This page has changed!");
}
…the same example, but skipping the first visit:
const pattern = /last_modif\s*=\s*([^;]*)/;
const lastVisit = parseFloat(document.cookie.replace(pattern, "$1"));
const lastModif = Date.parse(document.lastModified);
if (Number.isNaN(lastVisit) || lastModif > lastVisit) {
document.cookie = `last_modif=${Date.now()}; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=${
location.pathname
}`;
if (isFinite(lastVisit)) {
alert("This page has been changed!");
}
}
If you want to know whether an external page has changed, you can make a HEAD
request using the fetch()
API, and examine the Last-Modified
response header.
Specifications
Specification |
---|
HTML Standard # dom-document-lastmodified-dev |
Browser compatibility
BCD tables only load in the browser