如何正确格式化xml站点地图

时间:2015-07-10 20:02:06

标签: xml sitemap

我正在创建一个应用,每次在网站上添加或更新新内容时,该应用都会自动更新sitemap.xml

根据Google的最佳做法,<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

6 个答案:

答案 0 :(得分:13)

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

来自Lastmod definition section of sitemaps.org

  

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

如果你想要达到那个粒度并提供时区偏移量,那么你是正确的,它是UTC +/-。来自W3C Datetime

  

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

例如,仍然来自W3C:

  

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

答案 1 :(得分:4)

在C#

中正确格式化XML站点地图的上次修改(lastmod)时间
var ss = DateTime.Now.ToString("yyyy-mm-ddThh:mm:ss:zzz");

答案 2 :(得分:2)

PHP实际应该是:

date('Y-m-d\TH:i:s+00:00');

答案 3 :(得分:0)

在PHP中,您可以使用:

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

这将显示如下内容:

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

答案 4 :(得分:0)

C#的Google Sitemaps XML中的lastmod字段的格式如下:

var lastmod = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz");

它提供诸如W3C Datetime格式的<lastmod>2018-08-24T09:18:38-04:00</lastmod>之类的值。

答案 5 :(得分:0)

Date.prototype.toISOString()

  

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

     

function getColumnHeight(col,sh,ss){ var ss=ss || SpreadsheetApp.getActive(); var sh=sh || ss.getActiveSheet(); var col=col || sh.getActiveCell().getColumn(); var rg=sh.getRange(1,col,sh.getLastRow(),1); var vA=rg.getValues(); while(vA[vA.length-1][0].length==0){ vA.splice(vA.length-1,1); } return vA.length; }