2015-07-10 1191 views
10

我正在创建一个应用程序,每次将新内容添加到网站或在网站上进行更新时,它都会自动更新sitemap.xml如何正确格式化xml站点地图的上次修改时间(lastmod)

根据谷歌的最佳实践<lastmod></lastmod>标签格式应为如下:

<lastmod>2011-06-27T19:34:00+01:00</lastmod>

我的问题是关于时间格式本身。我了解2011-06-27T19:34:00部分。我不明白的是+01:00,我假设它是+/- UTC

这是一个正确的假设吗?

我的时区表看起来是这样的:

enter image description here

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

而且,如果该网站是基于在#6阿拉斯加标准时间的正确时间将是:2011-06-27T19:34:00-09:00

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

回答

11

这个lastmod标签在sitmaps中是可选的,在大多数情况下,它被搜索引擎忽略,因为网站管理员在做一个可怕的工作以保持其准确性。无论如何,你可以使用它,格式取决于你的能力和要求;如果你不能或不想提供时区偏移量,你也可以选择简单的YYYY-MM-DD。

Lastmod definition section of sitemaps.org

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

如果你想下降到这个粒度并提供时区偏移,那么你是正确的,它是UTC +/-。 From W3C Datetime

时间以当地时间表示,连同以小时和分钟为单位的时区偏移。 “+ hh:mm”的时区偏移表示日期/时间使用UTC之前“hh”小时和“mm”分钟的本地时区。 “-hh:mm”的时区偏移表示日期/时间使用的是UTC时间后的“hh”小时和“mm”分钟的本地时区。

从W3C

而且例如,仍:

1994-11-05T08:15:30-05:00对应于1994年11月5日,上午八时一十五分30秒,美国东部标准时间。

+1

谢谢你的详细解释。我已经阅读了“sitemaps,org”部分,并意识到时间在''选项中是可选的,但我想如果我对'UTC +/-'的假设是正确的,并且我已经获得了信息db表为什么不使用它。我不想打开一罐蠕虫,如果我的假设不正确,就不得不回头重新编程,这是你为我澄清的......再次感谢您花时间为您提供详细的答案。 – petebolduc

+0

[Google发布的最佳做法(2014)](https://webmasters.googleblog.com/2014/10/best-practices-for-xml-sitemaps-rssatom.html)明确地说“两个最重要的信息对于Google来说就是网址本身及其最后修改时间“,然后解释了lastmod预期的含义。这听起来不像他们在大多数情况下忽略它。 – Peter

2

正确格式化C#最后修改(的lastmod)时为XML网站地图

var ss = DateTime.Now.ToString("yyyy-mm-ddThh:mm:ss:zzz"); 
0

在PHP中,你可以使用:

$lastmod = date("Y-m-d\Th:m:s+00:00"); 

这将显示类似:

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