【问题标题】:Javascript document.lastModified is returning current date and timeJavascript document.lastModified 正在返回当前日期和时间
【发布时间】:2019-08-12 17:23:52
【问题描述】:

我使用标准的document.lastModified Javascript 属性来输出页面的假定最后修改日期,但它输出的是实际的当前日期和时间。关于为什么它会以这种方式而不是输出页面的实际最后修改属性的任何线索?这既发生在本地(在我的机器上),也发生在交付服务器上的发布页面。

【问题讨论】:

  • 现在的标准是什么?那是 DOM Level 0,在任何地方都没有标准化?
  • '如果文档提供日期,则获取文档最后修改的日期。检查 HTTP 标头。
  • lastModified 是响应标头中的值。您是否在服务器上动态创建此资源?
  • 我相信 document.lastModified 只是与 lastModified 标头相同的时间,如果它被发送,或者当前时间,如果服务器省略了该标头..
  • @adeno - 文档对象的标准 Javascript 属性“lastModified”。

标签: javascript html


【解决方案1】:

document.lastModified 我想是基于 HTTP 响应头字段 Last-Modified (RFC2822)。 Last-Modified 通常与 Request 标头字段 If-Modified-Since 结合使用,用于缓存目的。

与其他标头字段一样,它是服务器实现特定于返回的值。回复您的 HTTP 请求的服务器软件可能会或可能不会在 HTTP 响应中返回 Last-Modified 标头字段。

在您运行它的页面中,服务器只返回当前日期。此页面也是如此。

但是在 https://developer.mozilla.org/en-US/docs/Web/API/document.lastModified 上执行 document.lastModified(在开发工具中),您将得到 11/13/2013 09:13:29

使用 Firefox 中的 firebug 或 Chrome 中的 Chrome 开发工具,您可以在 Network 选项卡中查看 HTTP 流量数据。

【讨论】:

  • 我认为这可能是问题所在——感谢@cbayram 提供的信息。
  • 那么,有什么解决办法呢?如何更改服务器软件的行为???
【解决方案2】:

在我硬盘上的本地文件上测试了 lastModified。 Chrome 返回当前时间/日期,而不是保存文件的时间。 Internet Explorer 和 Firefox 返回时间/日期文件已保存。 所以这是一个 Chrome 错误。 获取页面以检查来自 userAgent 的 Chrome 是否并警告用户或禁用代码。

块引用

if(navigator.userAgent.indexOf("Chrome/")>0){ alert("Chrome 错误。\n请使用其他浏览器。\n可以使用的浏览器。"); }

块引用

lastModified 的其他问题。 它返回一个字符串而不是日期对象。所以不能使用 date.getFullYear() 该字符串是美国格式,而不是标准格式 d/mm/yyyy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多