--- title: File.lastModified slug: Web/API/File/lastModified tags: - API - File API - ファイル - プロパティ - リファレンス translation_of: Web/API/File/lastModified ---
File.lastModified
読み取り専用プロパティは、ファイルの最終更新日時を UNIX エポック (1970 年 1 月 1 日の深夜 0 時) からのミリ秒数で返します。最終更新日時がわからないファイルは、現在の日時を返します。
var time = instanceOfFile.lastModified;
UNIX エポックからのミリ秒数を表す数値。
<input type="file" multiple id="fileInput">
const fileInput = document.querySelector('#fileInput'); fileInput.addEventListener('change', (event) => { // filesはFileList型オブジェクト (NodeListと似ている) const files = event.target.files; for (let file of files) { const date = new Date(file.lastModified); console.log(`${file.name} has a last modified date of ${date}`); } });
以下の結果を試してみてください。
{{ EmbedLiveSample('Reading_from_file_input', 300, 50) }}
ファイルが動的に生成された場合、最終更新日時は {{domxref("File.File()", "new File()")}} コンストラクター関数で指定できます。ファイルが見つからない場合、 lastModified
は File
オブジェクトの作成時に {{jsxref("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
のいずれか大きい方の値になります。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('File API', '#file-attrs', 'lastModified')}} | {{Spec2('File API')}} | 初回定義 |
{{Compat("api.File.lastModified")}}