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.

js
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.

js
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.

js
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):

js
// 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:

js
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