Datum einer Datei auslesen und darstellen

GolfVadda

Newbie
Registriert
Juli 2022
Beiträge
4
Ich erstelle Hilfetexte auf .html-Basis.
Wenn eine solche Hilfe im Browser angezeigt wird, möchte ich dazu "im Fuß" das Erstelldatum der HTML-Datei anzeigen,
also "Hilfetext zuletzt bearbeitet am TT.MM.JJJJ"

Bisher bin ich mit JAVASCRIPT so weit gekommen, aber leider wird nicht das Erstelldatum der Datei angezeigt, sondern
das aktuelle Tagesdatum. Ich finde "den Fehler" nicht:

$(document).ready(function() {
let dLM = new Date(Date.parse(document.lastModified));
let year = dLM.getFullYear();
let month = dLM.getMonth()+1;
let date = dLM.getDate();
if (date<10) date = "0"+date;
if (month<10) month = "0"+month;

filepath = window.location.pathname;
dateLastModifiedString = date+"."+month+"."+year;
 
Willkommen im Forum.
Bitte benutze Code-Tags, damit Dein Code besser gelesen werden kann. Der Editor macht es leicht.

Normalerweise lässt man ein Modifikationsdatum von einem Content-Management-System in die Seite schreiben; man kann natürlich auch ohne CMS z.B. mit PHP eine Seite dynamisch generieren und da u.a. ein Datei-Modifikations-Datum auslesen und mit einbauen.
Bei einer statischen HTML-Datei geht das natürlich nicht und Javascript wäre dann der einzige Weg, damit dynamischen Content zu erzeugen.

document.lastModified kann aber unmöglich das Erstelldatum einer HTML-Datei auslesen, sondern nur das Datum bei Erzeugen (hier) Ändern der Datei im Client (Browser) anzeigen - deswegen bekommst Du das tagesaktuelle Datum angezeigt.

Wenn das Dein einzig gangbarer Weg ist, wird es (viel) aufwändiger: Du müsstest einen Remote Request erzeugen (Stichwort AJAX) und damit auf dem Server einen Dienst triggern (programmiert in Java, C, Ruby, PHP, Perl, Python, node.js - such Dir was aus), welcher den gesuchten Timestamp der gesuchten Datei ausliest und überträgt.

Wenn man an der Stelle ist, lohnt es sich schon nicht mehr, statischen Content auszuliefern, und man macht seine Dokumente doch lieber gleich dynamisch (und kann also das Modifikationsdatum direkt reinschreiben).
 
  • Gefällt mir
Reaktionen: User007
Hi und willkommen im Forum...

GolfVadda schrieb:
[...] eine solche Hilfe im Browser angezeigt wird, möchte ich dazu "im Fuß" das Erstelldatum der HTML-Datei anzeigen,
also "Hilfetext zuletzt bearbeitet am TT.MM.JJJJ"
Geht's um das Datum der letzten Bearbeitung oder der Erstellung des aktuell im Browser angezeigten Dokuments?

Ich bin jetzt nicht so der JS-Spezi, aber solche Abfragen würd' ich (erfahrungsmäßig) eher in einer Server-seitigen Scriptsprache umsetzen - Bsp.: Was passiert, wenn JS im Browser des Nutzers deaktiviert ist?
Ansonsten... im so angezeigten Code fehlt eine schließende geschweifte Klammer:​
Javascript:
$(document).ready(function() {
   let dLM = new Date(Date.parse(document.lastModified));
   let year = dLM.getFullYear();
   let month = dLM.getMonth()+1;
   let date = dLM.getDate();
   if (date<10) date = "0"+date;
   if (month<10) month = "0"+month;

   filepath = window.location.pathname;
   dateLastModifiedString = date+"."+month+"."+year;
}
Erstelldatum wird mit document.fileCreatedDate abgefragt.
Aber mglw. hilft dieser Java-Forum-Beitrag auf die Spur.
 
Düren-Gürzenich
Phrasendreher schrieb:
Wenn man an der Stelle ist, lohnt es sich schon nicht mehr, statischen Content auszuliefern, und man macht seine Dokumente doch lieber gleich dynamisch (und kann also das Modifikationsdatum direkt reinschreiben).
eijeijei, das übersteigt meine Fähigkeiten ...
Danke für die Antwort.
Werde als in neue Dateien das "Bearbeitungsdatum" manuell eintragen müssen, hilft mir aber leider bei hunderten bestehender "alter" Dateien nicht (und hat das Problem, dass das manuelle Datum beim Editieren vergessen wird ).:(
 
GolfVadda schrieb:
hilft mir aber leider bei hunderten bestehender "alter" Dateien nicht

Damit hast Du gleich das beste Argument für Automatisierung geliefert - genau aus solchen Gründen gibt es Skriptsprachen im Web und CMS.

Stell Dir vor Dein Webserver (vllt. Apache?) kann sowieso PHP parsen, auch wenn Du bislang nur HTML auslieferst - dann müsstest Du Deine Datei nur in .php statt .html umbenennen und sowas wie Folgendes ans Ende schreiben:

PHP:
<?php
    printf( "Last modified: %s", date("d.m.Y", filectime(__FILE__) ) );
?>

- job done.

Falls Du gerade Lust bekommen hast, damit zu experimentieren, dann such im Netz mal nach XAMPP (das ist ein Anwendungsstack mit X als Platzhalter für das Betriebssytem - L wie Linux, M wie MacOS, W wie Windows; dann A wie Apache als Webserver, M wie MySQL/MariaDB als lokale Datenbank, P wie PHP als Skriptsprache und noch ein P war ursprünglich für Perl).

Das installierst Du auf Deinem Arbeitsgerät und Du lernst sehr schnell.
 
also theoretisch waere das hier eine rein client-seitige loesung nur mit JS:
Code:
fetch('https://...').then(function(res) {
  let date = res.headers.get('last-modified');
  // ...
});
ist offensichtlich keine besonders performante idee, weil jedesmal ein zusaetzlicher request auf die datei losgeht. ausserdem muessen die CORS-header/origins passen und der server muss die info auch korrekt ausliefern. das format des last-modified-headers laesst sich hier nachlesen - man muss also noch ein bisschen strings schnibbeln, um auf DD.MM.YYYY zu kommen.
 
Zurück
Oben