Start · Sprachen · JavaScript · Referenz · File.lastModifiedDate

File.lastModifiedDate

Eigenschaft

Die schreibgeschützte, veraltete Eigenschaft <code>lastModifiedDate</code> gibt den Zeitpunkt der letzten Änderung einer Datei als <code>Date</code>-Objekt zurück.

seit JavaScript Veraltet und nicht standardisiert: Nachfolger ist deprecated seit ja Kategorie: webapi

Signatur

File.lastModifiedDate

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

Typ
Date
Beschreibung
Ein 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')}`);
});
bericht.pdf zuletzt geändert: 12.3.2024, 14:05:33

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());
}
Nicht unterstützt – Standardwert: 2024-01-15T10:30:00.000Z

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 Bedarf new 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 Option lastModified setzen. 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 lastModifiedDate in den aktuellen DOM-Typdefinitionen nicht mehr.