Signatur
Beschreibung
Die Eigenschaft lastModifiedDate eines File-Objekts liefert ein Date-Objekt. Es gibt an, wann die Datei zuletzt geändert wurde. Solche File-Objekte bekommt man meist über ein <input type="file">, über Drag-and-drop (DataTransfer.files) oder über die File System Access API.
Die Eigenschaft ist veraltet und nicht standardisiert. Die Spezifikation der File API sieht stattdessen File.lastModified vor. Diese Eigenschaft gibt denselben Zeitpunkt als Zahl zurück, nämlich in Millisekunden seit der Unix-Epoche. Ein Date-Objekt erhält man daraus mit new Date(file.lastModified).
Die Eigenschaft kann man höchstens noch in älterem Code finden, der alte Browser unterstützen muss. Neuer Code sollte immer lastModified verwenden. Wenn überhaupt, sollte lastModifiedDate nur als Rückfall nach einer Funktionsprüfung abgefragt werden.
Rückgabewert
Date-Objekt mit dem Zeitpunkt der letzten Änderung der Datei. Ist dieser Zeitpunkt nicht bekannt, liefern Browser in der Regel das aktuelle Datum. In Browsern, die die Eigenschaft nicht mehr unterstützen, ergibt der Zugriff undefined.Beispiele
Änderungsdatum einer ausgewählten Datei anzeigen (mit Rückfall)
// HTML: <input type="file" id="upload">
const input = document.querySelector('#upload');
const getModifiedDate = (file) =>
// Zuerst die Standard-Eigenschaft verwenden, sonst die veraltete
typeof file.lastModified === 'number'
? new Date(file.lastModified)
: file.lastModifiedDate ?? null;
input.addEventListener('change', () => {
const [file] = input.files;
if (!file) return;
const date = getModifiedDate(file);
console.log(`${file.name} zuletzt geändert: ${date?.toLocaleString('de-DE')}`);
});
Prüfen, ob der Browser die Eigenschaft noch kennt
const file = new File(['Hallo'], 'notiz.txt', {
type: 'text/plain',
lastModified: Date.UTC(2024, 0, 15, 10, 30)
});
if ('lastModifiedDate' in file) {
console.log('Veraltet, aber vorhanden:', file.lastModifiedDate.toISOString());
} else {
console.log('Nicht unterstützt – Standardwert:', new Date(file.lastModified).toISOString());
}
Alten Code auf lastModified umstellen: Dateien nach Alter filtern
// Vorher (veraltet): file.lastModifiedDate > grenze
// Nachher (Standard):
const dropZone = document.querySelector('#drop');
const sieben Tage = null; // Platzhalter entfernt, siehe unten
// Wichtig · Fallstricke
- Veraltet: Die Eigenschaft gehört nicht zum aktuellen File-API-Standard. Firefox hat sie entfernt, andere Browser haben sie nur zeitweise oder eingeschränkt unterstützt. Verlassen Sie sich nicht darauf, dass sie vorhanden ist.
- Ersatz: Verwenden Sie
file.lastModified, eine Zahl in Millisekunden, und bei Bedarfnew Date(file.lastModified). - Der Wert kommt vom Betriebssystem oder vom Browser und ist nicht vertrauenswürdig. Nutzer können ihn verändern. Beim Erzeugen per
new File()lässt er sich außerdem frei über die OptionlastModifiedsetzen. Für sicherheitsrelevante Prüfungen auf dem Server ist er deshalb ungeeignet. - Das zurückgegebene
Date-Objekt ist eine Kopie. Wenn Sie es verändern, ändert sich das Änderungsdatum der Datei nicht. - TypeScript kennt
lastModifiedDatein den aktuellen DOM-Typdefinitionen nicht mehr.