我正在创建一个应用,每次在网站上添加或更新新内容时,该应用都会自动更新sitemap.xml
。
根据Google的最佳做法,<lastmod></lastmod>
标记的格式应如下:
<lastmod>2011-06-27T19:34:00+01:00</lastmod>
我的问题涉及时间格式化本身。我理解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
?
答案 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)
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; }