Signatur
Beschreibung
Die schreibgeschützte Eigenschaft document.lastModified gibt einen String zurück, der Datum und Uhrzeit der letzten Änderung des Dokuments in der lokalen Zeitzone des Nutzers enthält. Das Format ist laut HTML-Standard fest vorgegeben: MM/DD/YYYY hh:mm:ss (z. B. "03/14/2024 09:26:53") – also US-Reihenfolge mit Monat vorn, unabhängig von der Spracheinstellung.
Der Wert stammt in der Regel aus dem HTTP-Antwort-Header Last-Modified. Sendet der Server diesen Header nicht (typisch bei dynamisch erzeugten Seiten, PHP, Node.js, SSR), liefern Browser stattdessen die aktuelle Uhrzeit – der Wert ändert sich dann bei jedem Neuladen.
Typische Einsatzfälle sind ein „Zuletzt aktualisiert“-Hinweis im Seitenfuß statischer Seiten oder eine einfache Prüfung, ob sich eine Seite seit dem letzten Besuch geändert hat. Zur Weiterverarbeitung wandelt man den String am besten mit new Date(document.lastModified) oder Date.parse() in ein Date-Objekt um und formatiert ihn anschließend lokalisiert, etwa mit Intl.DateTimeFormat.
Rückgabewert
MM/DD/YYYY hh:mm:ss. Ist keine Angabe verfügbar, die aktuelle Uhrzeit.Beispiele
Rohwert auslesen
console.log(document.lastModified);
„Zuletzt aktualisiert“ lokalisiert im Footer anzeigen
const geaendert = new Date(document.lastModified);
const format = new Intl.DateTimeFormat('de-DE', {
dateStyle: 'long',
timeStyle: 'short'
});
const footer = document.querySelector('footer');
const hinweis = document.createElement('p');
hinweis.textContent = `Zuletzt aktualisiert: ${format.format(geaendert)}`;
footer?.append(hinweis);
Änderung seit dem letzten Besuch erkennen
const schluessel = `lastModified:${location.pathname}`;
const aktuell = Date.parse(document.lastModified);
const gespeichert = Number(localStorage.getItem(schluessel));
if (gespeichert && aktuell > gespeichert) {
console.log('Diese Seite wurde seit Ihrem letzten Besuch geändert.');
}
localStorage.setItem(schluessel, String(aktuell));
Prüfen, ob der Wert nur die aktuelle Zeit ist
const alterInSekunden = (Date.now() - Date.parse(document.lastModified)) / 1000;
if (alterInSekunden < 2) {
console.log('Kein Last-Modified-Header – Wert entspricht vermutlich der Ladezeit.');
} else {
console.log(`Dokument ist ${Math.round(alterInSekunden / 3600)} Stunden alt.`);
}
// Wichtig · Fallstricke
- Fehlender Header: Ohne
Last-Modified-Header gibt der Browser die aktuelle Uhrzeit zurück. Bei dynamischen Seiten ist der Wert daher oft wertlos. - Festes US-Format: Der String hat immer
MM/DD/YYYY. Nicht persplit()als deutsches Datum deuten, sondern mitnew Date()umwandeln. - Keine Zeitzonenangabe: Der Wert steht in lokaler Zeit ohne Offset. Bei der Umwandlung wird er als lokale Zeit gelesen. Zum Vergleich über Zeitzonen hinweg besser den HTTP-Header per
fetch()mitresponse.headers.get('Last-Modified')auswerten. - Schreibgeschützt: Eine Zuweisung wird stillschweigend ignoriert.
- Kompatibilität: In allen Browsern verfügbar. Bei
file://-URLs wird meist das Änderungsdatum der Datei verwendet; das Verhalten kann je nach Browser leicht abweichen.