lastModified()函数返回当前日期和时间。

9
我的问题是:当我在我的网页上使用"document.lastModified"时,为什么它会返回当前日期和时间,而不是页面上次修改的时间... 有什么想法吗? 先谢谢了 :)
实际代码是:
<script type="text/javascript"> document.write("Page was last modified on: " + document.lastModified);</script>

1
因为您当前正在修改它,所以请查看以下示例:http://www.w3schools.com/js/tryit.asp?filename=tryjs_events - karthikr
1
如果您正在使用服务器端脚本语言,则文档将始终在页面加载时最后修改。 - Populus
也不是所有服务器都能正确返回这个。 - mplungjan
4个回答

1

因为您目前正在修改它。请查看示例

为了根据您的要求使其工作,请查看此链接此链接

从外部链接复制:

将此放在页面底部:

 <script type="text/javascript" src="js_lus.js"></script>

给文件起任何你想要的名字。例如:js_lus.js 确保所有页面的 src="" 路径都是正确的。
function lastModified() {
    var modiDate = new Date(document.lastModified);
    var showAs = modiDate.getDate() + "-" + (modiDate.getMonth() + 1) + "-" + modiDate.getFullYear();
    return showAs
}

function GetTime() {
    var modiDate = new Date();
    var Seconds

    if (modiDate.getSeconds() < 10) {
        Seconds = "0" + modiDate.getSeconds();
    } else {
        Seconds = modiDate.getSeconds();
    }

    var modiDate = new Date();
    var CurTime = modiDate.getHours() + ":" + modiDate.getMinutes() + ":" + Seconds
    return CurTime
}

document.write("Last updated on ")
document.write(lastModified() + " @ " + GetTime());
document.write(" [D M Y 24 Hour Clock]")
document.write("");

2
如果答案(如你所链接的)简短明了(确实如此),那么你应该在回答中放置实际的解决方案/代码,并给予链接的信用/参考。这样,如果链接消失了,答案仍然可以在这里找到。 - Matt
9
为什么在URL栏中粘贴“javascript:alert(document.lastModified)”也会返回当前时间?这显然不会修改文档,是什么原因导致了这种情况? - Michael

1
我今天进行了一个实验。我将以下脚本放在我的服务器上,放在一个被标记为1月1日最后修改的文件中:

var theDate = new Date(document.lastModified).toISOString().substr(5, 5).replace('-', '');
document.write(theDate);

我让访问者告诉我他们看到了什么。103个人说他们看到了"0101",这是预期的字符串,8个人说他们看到了"0308",即当前日期。所有错误的答案都来自Android、Chrome/7[12]用户。好的答案(22个)也来自其他Android用户,通常使用较早版本的Chrome。然而,有10个Android Chrome/72用户看到了正确的日期。

根据这个小样本,Android Chrome 71+版本中一定有问题,但这是随机的。


0
我在使用PHP编程时遇到了这个问题。在我的情况下,问题是由于PHP是一种服务器端语言,每次调用页面时都会重新呈现页面,从而重置了要求编辑时间的JavaScript代码。

-1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html><head><title>Last Modified Date</title></head><body>
Last modified:
<script language="JavaScript">
var testlast=document.lastModified;
document.write(" "+testlast.substr(0,10));
</script><br>
</body></html>

该代码应返回源文档的最后修改日期。 过去它总是这样做的。 被更改的“文档”是网页的显示表单,而不是源。 第3行应获取文档的修改日期,在页面显示之前、期间或之后都不会更改。 因此,“testlast”应该是源的修改日期,而不是当前日期。 当我将源放在我的Macintosh上并从“localhost”访问它时,此代码可以正常工作。


对我来说,你的解决方案总是显示今天的日期,无论我查看哪个页面。我认为它在你本地使用时有效,因为你的页面很简单:它不会动态生成任何内容。对于你来说,提供的页面就是源页面。如果它是动态生成的(即PHP或Javascript编辑页面的某些部分),那么“提供的页面”将是源文件的修改副本,并且修改日期将是加载时的时间。 - jvriesem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接