网站上文件的上次修改日期

时间:2009-06-23 19:54:15

标签: html http

有没有办法在网站上获取文件的Last-Modified-Date?

即。这是我在那里的示例文件: http://www.ymcadetroit.org/atf/cf/%7B2101903E-A11A-4532-A64D-9D823368A605%7D/Birmingham_Youth_Sports_Parent_Manual.pdf

10 个答案:

答案 0 :(得分:8)

转到您想要了解的网站,等待它完全加载,然后转到地址栏并写下:

javascript:alert(document.lastModified)

您将获得一个弹出窗口,说明上次修改时间。

答案 1 :(得分:6)

HTTP打算Last-Modified header field声明上次修改日期。但服务器需要知道该日期。

在静态文件上,其内容直接发送到客户端而不是由服务器解释(例如.html.css.js)它使用该文件的最后修改日期。但是对于动态生成内容的文件(PHP,Python等),脚本需要自己指定信息。但不幸的是,许多剧本都不这样做。

因此,如果存在Last-Modified标题字段,则可以使用该信息。但如果没有,则无法确定最后修改日期。

答案 2 :(得分:5)

我意识到这个问题已经有4年了,但是对网络的搜索证明了令人满意的答案仍然很少。彼得的答案是解决方案的一部分。当我遇到同样的问题时,这让我开始了。但其余的解决方案......

正如他所说,必须将Web服务器配置为发送最后修改日期...那么如何配置Web服务器?

假设您具有必要的控制级别,首先需要启用服务器端包含。有几种方法可以做到这一点 - 其中一种是“xbithack”。一个很好的参考是http://httpd.apache.org/docs/current/howto/ssi.html

假设你已经这样做了,你需要在任何需要解析服务器端包含的html文件上设置执行位。这可以在类UNIX系统的命令行中完成:chmod u+x file.html或在Mac上使用文件上的get-info(命令-I)完成。

这会使代码段实际放入您的文件中,如下所示:

This document last modified <!--#flastmod file="index.html" -->

由于我发现了许多不包含此内容的建议,并且只是使用了javascript document.lastModified,我怀疑某些服务器会为您提供您想要的javascript版本,而有些(包括一个托管服务器)我们的东西)不要。

答案 3 :(得分:4)

以下是一些C#代码:

public DateTime GetLastModifyTime(string url)
{
        WebRequest request = WebRequest.Create(url);
        request.Credentials = CredentialCache.DefaultNetworkCredentials;
        request.Method = "HEAD";

        using (WebResponse response = request.GetResponse())
        {
            string lastModifyString = response.Headers.Get("Last-Modified");
            DateTime remoteTime;
            if (DateTime.TryParse(lastModifyString, out remoteTime))
            {
                return remoteTime;
            }

            return DateTime.MinValue;
        }
}

答案 4 :(得分:2)

我认为必须将Web服务器配置为在HTTP标头中发送最后修改日期,这当然是一种方式。查看本文档的最后修改部分14.29:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

答案 5 :(得分:2)

要从客户端获取上次修改日期,您可以使用JavaScript使用lastModified属性访问HTML DOM。

lastModified属性从所有Web请求发送的头部获取信息。该值可由开发人员在Web服务器端手动设置,因此可能无法反映负责传递内容的文件的实际上次修改日期。

实施例

<!DOCTYPE html>
<html>
<body>
  
<b>document.lastModified : </b>
<script>document.write( document.lastModified );</script>

</body>
</html>

JavaScript中用于检索此内容的特定命令是document.lastModified,可以轻松转换为Date对象,如下所示:

var x = new Date(document.lastModified);

可以在我用作参考w3 schools : HTML DOM lastModified Property

的网站上找到更多信息

答案 6 :(得分:0)

只使用简单的HTML,不可以。

您可以使用PHP,ASP或任何其他服务器端语言。

答案 7 :(得分:0)

我不是标题专家,但相信你正在寻找这个:

有一种方法可以检查文件被修改的日期: View HTTP headers in Google Chrome?

在那里检查(Chrome的开发者工具/网络/所选文件/标题)“If-Modified-Since”变量。

到目前为止,这有助于我实现您的要求,获得文件的修改日期。

答案 8 :(得分:0)

您可以执行以下操作以获得Last-Modified: https://superuser.com/a/991895

使用卷曲:

curl -s -v -X HEAD http://foo.com/bar/baz.pdf 2>&1 | grep '^< Last-Modified:'

使用wget:

wget --server-response --spider http://example.com/bar/example.pdf 2>&1 | grep -i Last-Modified

答案 9 :(得分:-2)

在php中:

print getlastmod();
print gmdate('D, d M Y H:i:s', getlastmod());