Ich versuche, das letzte Änderungsdatum einer Datei auf dem Server mit node.js abzurufen.
ich habe es versucht
file.lastModified;
und
file.lastModifiedDate;
beide kommen als undefiniert zurück.
Antworten:
Für Knoten v 4.0.0 und höher:
fs.stat("/dir/file.txt", function(err, stats){
var mtime = stats.mtime;
console.log(mtime);
});
oder synchron:
var stats = fs.statSync("/dir/file.txt");
var mtime = stats.mtime;
console.log(mtime);
stats.mtime
bereits ein Date-Objekt vorhanden ist.
Sie sollten die Statistikfunktion verwenden:
Laut Dokumentation :
fs.stat(path, [callback])
Asynchroner Status (2). Der Rückruf erhält zwei Argumente (err, stats), wobei stats ein fs.Stats-Objekt ist. Es sieht aus wie das:
{ dev: 2049
, ino: 305352
, mode: 16877
, nlink: 12
, uid: 1000
, gid: 1000
, rdev: 0
, size: 4096
, blksize: 4096
, blocks: 8
, atime: '2009-06-29T11:11:55Z'
, mtime: '2009-06-29T11:11:40Z'
, ctime: '2009-06-29T11:11:40Z'
}
Wie Sie sehen können, mtime
ist dies die letzte geänderte Zeit.
Hier können Sie die letzte Änderungszeit der Datei in Sekunden abrufen.
fs.stat("filename.json", function(err, stats){
let seconds = (new Date().getTime() - stats.mtime) / 1000;
console.log(`File modified ${seconds} ago`);
});
Gibt so etwas wie "Datei vor 300,9 Sekunden geändert" aus.
seconds = (new Date().getTime() - new Date(stats.mtime).getTime()) / 1000;
Fügen Sie einfach hinzu, was Sandro gesagt hat. Wenn Sie die Überprüfung so schnell wie möglich durchführen möchten, ohne ein Datum oder etwas anderes analysieren zu müssen, verwenden Sie einfach einen Zeitstempel in Millisekunden (Zahl) mtimeMs
.
Asynchrones Beispiel:
require('fs').stat('package.json', (err, stat) => console.log(stat.mtimeMs));
Synchron:
console.log(require('fs').statSync('package.json').mtimeMs);
util.inspect()
?