Document:lastModified 属性

lastModifiedDocument 接口的一个属性,它返回一个字符串,包含当前文档上次修改的日期和本地时间。

字符串。

示例

简单用法

此示例会提示 lastModified 的值。

js
alert(document.lastModified);
// returns: Tuesday, December 16, 2017 11:09:42

将 lastModified 转换为 Date 对象

此示例将 lastModified 转换为 Date 对象。

js
let oLastModif = new Date(document.lastModified);

将 lastModified 转换为毫秒数

此示例将 lastModified 转换为自 1970 年 1 月 1 日 00:00:00 以来的毫秒数(本地时间)。

js
let nLastModif = Date.parse(document.lastModified);

注释

请注意,作为字符串,lastModified 无法轻松用于比较文档的修改日期。以下是如何在页面更改时显示警报消息的示例(另请参阅:JavaScript cookie 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!");
}

…相同的示例,但跳过第一次访问

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!");
  }
}

如果要了解外部页面是否已更改,可以使用 HEAD 请求(通过 fetch() API),并检查 Last-Modified 响应头。

规范

规范
HTML 标准
# dom-document-lastmodified-dev

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。