如何正确设置xml站点地图上次修改(lastmod)时间的格式

如何正确设置xml站点地图上次修改(lastmod)时间的格式,xml,sitemap,Xml,Sitemap,我正在创建一个应用程序,它将在每次向站点添加或更新新内容时自动更新sitemap.xml 根据谷歌的最佳实践,标签的格式应如下所示: 2011-06-27T19:34:00+01:00 我的问题涉及时间格式化本身。我理解2011-06-27T19:34:00部分。我不理解的是+01:00,我假设是+/-UTC 这是正确的假设吗? 我的时区表如下所示: 因此,如果该网站位于#4阿富汗,那么正确的时间应该是: 2011-06-27T19:34:00+04:00 如果该站点位于阿拉斯加州标准时间#6

我正在创建一个应用程序,它将在每次向站点添加或更新新内容时自动更新
sitemap.xml

根据谷歌的最佳实践,
标签的格式应如下所示:

2011-06-27T19:34:00+01:00

我的问题涉及时间格式化本身。我理解
2011-06-27T19:34:00
部分。我不理解的是
+01:00
,我假设是
+/-UTC

这是正确的假设吗?

我的时区表如下所示:

因此,如果该网站位于#4阿富汗,那么正确的时间应该是:
2011-06-27T19:34:00+04:00

如果该站点位于阿拉斯加州标准时间#6,则正确的时间为:
2011-06-27T19:34:00-09:00


我的假设是正确的还是我没有正确理解
+01:00

在网站地图中,
lastmod
标记是可选的,在大多数情况下,它被搜索引擎忽略了,因为网站管理员在保持准确方面做得很糟糕。在任何情况下,您都可以使用它,其格式取决于您的能力和需求;如果您不能或不想提供时区偏移,您实际上不必提供,您也可以选择使用简单的YYYY-MM-DD

从:

上次修改文件的日期。此日期应为格式。如果需要,此格式允许您省略时间部分,并使用YYYY-MM-DD

如果您希望降低到该粒度并提供时区偏移量,那么您是正确的,它是UTC+/-。发件人:

时间以当地时间表示,时区偏移以小时和分钟表示。时区偏移“+hh:mm”表示日期/时间使用的本地时区比UTC早“hh”小时“mm”分钟。时区偏移“-hh:mm”表示日期/时间使用的本地时区比UTC晚“hh”小时“mm”分钟

例如,仍然来自W3C:

1994-11-05T08:15:30-05:00对应于美国东部标准时间1994年11月5日上午8:15:30


在C中为XML站点地图正确设置上次修改(lastmod)时间的格式#

在PHP中,您可以使用:

$lastmod = date("Y-m-d\Th:m:s+00:00");
这将显示如下内容:

2018-02-14T08:02:28+00:00

PHP实际上应该是:

date('Y-m-d\TH:i:s+00:00');
C的Google Sitemaps XML中的字段格式如下:

var lastmod = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");
它提供的值如
2018-08-24T09:18:38-04:00
,这是一种格式。

方法返回简化扩展ISO格式的字符串 格式(ISO 8601),长度始终为24或27个字符 (YYYY-MM-DDTHH:MM:ss.sssZ或±YYYYYYY-MM-DDTHH:MM:ss.sssZ, 分别)。时区始终为零UTC偏移,如所示 后缀“Z”

//预期输出:2011-10-05T14:48:00.000Z


谢谢你的详细解释。我已经阅读了网站地图,org部分,意识到时间在
选项中是可选的,但是我想如果我对
UTC+/-
的假设是正确的,并且事实上我已经在db表中有了信息,为什么不使用它呢。我不想打开一罐蠕虫,如果我的假设不正确,我必须回去重新编程,你已经为我澄清了。。。再次感谢您抽出时间给出详细的答案。明确地说“谷歌最重要的两条信息是URL本身及其最后修改时间”,然后解释lastmod的含义。在大多数情况下,这听起来不像是他们忽略了它。对于这个答案,我的问题是(我写这篇文章时的当前版本是从2015年开始的),2019年搜索引擎是否仍然大多忽略了lastmod?我可以想象一种策略是,在单个的基础上为每个站点导出它的可信度(例如,在没有页面更新的情况下更改了lastmod等)。对于我们来说,尽可能合理地尝试使其正确似乎是值得的,无论是在准确性方面,还是在它随着时间的推移开始被更多地使用的情况下(这方面没有权威性,只是一个观点)。假设我不改变我1000个产品页面的可见内容(从用户的角度来看)。但我添加了一些新的结构化数据标记(我知道爬虫确实关心这些)。因此,我的1000个产品页面现在都呈现了一些新的(用户看不见的)数据标记。我是否应该更新所有1000页的
,以便googlebot知道我需要对它们重新编制索引?这是不正确的,并且显示无效的日期,正确的C#格式如下:
var lastmod=DateTime.Now.ToString(“yyyy-MM-ddTHH:MM:sszzz”)
日期('Y-m-d\TH:i:sP')
更准确。
var lastmod = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");