Document: lastModified プロパティ
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.
lastModified
は Document
インターフェイスのプロパティで、現在の文書が最後に更新された日付と時刻を含む文字列を返します。
値
文字列です。
例
単純な使用
この例では lastModified
の値をアラート表示します。
js
alert(document.lastModified);
// 表示内容: 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 クッキー API も参照)。
js
// 'timestamp' を 'last_modif=timestamp' で照合
// e.g. '1687964614822' は '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("ページが変更されました。");
}
…同じ例ですが、最初の訪問をスキップします。
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("ページが変更されました。");
}
}
外部ページが変更されたかどうかを知りたい場合、HEAD
リクエストを fetch()
API によって行い、Last-Modified
レスポンスヘッダーを調べます。
仕様書
Specification |
---|
HTML Standard # dom-document-lastmodified-dev |
ブラウザーの互換性
BCD tables only load in the browser