File: lastModifiedDate プロパティ

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

非標準: この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

File.lastModifiedDate 読み取り専用プロパティは、ファイルの最終更新日を返します。最終更新日がわからないファイルは、現在の日付を返します。

Date オブジェクトで、ファイルが最後に変更された日時を表します。

js
// fileInput は HTMLInputElement である <input type="file" multiple id="myfileinput">
const fileInput = document.getElementById("myfileinput");

for (const file of fileInput.files) {
  console.log(`${file.name} の最終更新日は ${file.lastModifiedDate}`);
}

時間の精度の低下

タイミング攻撃やフィンガープリンティングに対する保護機能を提供するために、 someFile.lastModifiedDate.getTime() の精度がブラウザーの設定に応じて丸められることがあります。

Firefox では、privacy.reduceTimerPrecision 設定は既定で有効になっており、 Firefox 59 では既定で 20 us に設定されています。60 で 2 ms になります。

js
// Firefox 60 での時間の制度の低下 (2ms)
someFile.lastModifiedDate.getTime();
// 1519211809934
// 1519211810362
// 1519211811670
// …

// `privacy.resistFingerprinting` が有効な場合の時間の制度の低下
someFile.lastModifiedDate.getTime();
// 1519129853500
// 1519129858900
// 1519129864400
// …

Firefox では、privacy.resistFingerprinting を有効にすることもできます。精度は 100ms か privacy.resistFingerprinting.reduceTimerPrecision.microseconds のいずれか大きい方の値になります。

仕様書

ファイル API 仕様の初期のドラフトにありますが、このプロパティは削除されており、現在は非標準です。代わりにFile.lastModified を使用してください。

ブラウザーの互換性

BCD tables only load in the browser

関連情報