1

全部,

我有一个 JavaScript 问题,无法显示 .html 文件的最后修改日期。我试图将最后修改的日期代码放在我的页脚中,因此我不再需要编写这些代码了。它会显示每页的最后修改日期。

我尝试了网站上的代码:

<html>
<head>
<title>Last Modified</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<script type="text/javascript">

function showLastModified() {
var out = document.getElementById('lastModified');
var d = new Date();
if (d.toLocaleDateString) {
out.innerHTML = d.toLocaleDateString(document.lastModified);
}
else {
out.innerHTML = document.lastModified;
}
}

window.onload = showLastModified;
</script>
</head>
<body>
Last Modified on <span id="lastModified">&nbsp;</span>
</body>
</html>

但是,它仍然显示今天的日期。我认为是因为 d.toLocaleDateString,但我想不通。谁能帮我解决我的问题。

4

3 回答 3

1

toLocaleDateString没有参数。

var d = new Date( document.lastModified );
console.log( d.toLocaleDateString() );
于 2012-06-14T14:21:10.440 回答
1

大多数浏览器都支持 document.lastModified。但你需要在调用 toLocaleString- 之前将字符串转换为 Date 对象

if(document.lastModified){
    document.getElementById('lastModified').innerHTML=
    new Date(document.lastModified).toLocaleString();
}
于 2012-06-14T14:27:41.877 回答
0

我刚刚尝试document.lastModified在本地 html/js 文件和远程代码段文件上进行验证。在我看来,行为是不同的:在本地文件上,它返回的是系统日期和时间,而不是 html 文件最后修改的日期和时间正如预期的那样。这是非常奇怪的行为。我是如何检查的:我已将命令插入到 js 中,然后我在运行时使用 google chrome 开发工具在调试中断/断点模式下查看了文档属性:每次我将鼠标指向 document.lastmodified 属性时它都会改变相应地随着系统时间和每秒更新一次,无需退出 html 文档,无需将其保存在其他位置并重新加载到浏览器中,无需使用任何编辑器对其进行任何其他操作。然后我停用了断点,让代码自由执行,它也返回系统时间......在远程文件上,它按预期正常工作,并返回它自己的 html 文件的最后保存日期,它不是动态的。

这种双重检查让我认为如果文件是本地文件,则无法从浏览器正确解释该命令。该命令是否以 document.lastModified某种方式“破坏”了本地文件?

请问其他人可以检查这种奇怪的行为吗?

编辑:

奇怪的行为在 Opera 上是一样的,而 firefox 在本地和在线 html 文件中都按预期工作。

    document.write(document.lastModified);

于 2016-08-08T04:15:46.070 回答