File.lastModified

File.lastModified 読み取り専用プロパティは、ファイルの最終更新日時を UNIX エポック (1970 年 1 月 1 日の深夜 0 時) からのミリ秒数で返します。最終更新日時がわからないファイルは、現在の日時を返します。

構文

var time = instanceOfFile.lastModified;

UNIX エポックからのミリ秒数を表す数値。

file 入力欄からの読み込み

<input type="file" multiple id="fileInput">
const fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', function(event) {
  // files is a FileList object (similar to NodeList) 
  const files = event.target.files;

  for (let i = 0; i < files.length; i++) {
    const date = new Date(files[i].lastModified);
    alert(files[i].name + ' has a last modified date of ' + date);
  }
});

以下の結果を試してみてください。

動的に生成されるファイル

ファイルが動的に生成された場合、最終更新日時は new File() コンストラクター関数で指定できます。ファイルが見つからない場合、 lastModifiedFile オブジェクトの作成時に Date.now() から現在の時刻を継承します。

var fileWithDate = new File([], 'file.bin', {
  lastModified: new Date(2017, 1, 1),
});
console.log(fileWithDate.lastModified); //returns 1485903600000

var fileWithoutDate = new File([], 'file.bin');
console.log(fileWithoutDate.lastModified); //returns current time

時間の精度の低下

タイミング攻撃やフィンガープリンティングに対する保護機能を提供するために、someFile.lastModified の精度はブラウザーの設定に応じて丸められることがあります。
Firefox では、privacy.reduceTimerPrecision 設定は既定で有効になっており、 Firefox 59 では既定で 20 us に設定されています。60 で 2 ms になります。

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


// reduced time precision with `privacy.resistFingerprinting` enabled
someFile.lastModified;
// 1519129853500
// 1519129858900
// 1519129864400
// ...

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

仕様書

仕様書 状態 備考
File API
lastModified の定義
草案 初回定義

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
lastModifiedChrome 完全対応 13Edge 完全対応 18Firefox 完全対応 15IE 未対応 なしOpera 完全対応 16Safari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応

関連情報