File.lastModifiedDate

BCD tables only load in the browser

非推奨

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

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

var time = instanceOfFile.lastModifiedDate

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

var fileInput = document.getElementById("myfileinput");
// fileInput は HTMLInputElement オブジェクトを参照するものとする: <input type="file" multiple id="myfileinput">

var files = fileInput.files;
// files は (NodeList に似た) FileList オブジェクトを参照

for (var i = 0; i < files.length; i++) {
  alert(
    files[i].name +
    " (最終更新日:  " +
    files[i].lastModifiedDate +
    ")"
  );
}

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

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

// reduced time precision (2ms) in Firefox 60
someFile.lastModifiedDate.getTime();
// 1519211809934
// 1519211810362
// 1519211811670
// ...


// reduced time precision with `privacy.resistFingerprinting` enabled
someFile.lastModifiedDate.getTime();
// 1519129853500
// 1519129858900
// 1519129864400
// ...

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

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