26

我需要 php 中站点地图的日期格式。

我怎样才能做到这一点 ?

这个输出对吗?

<lastmod>2012-08-02EEST18:01:18+03:00</lastmod>
4

10 回答 10

45

If you have the timestamp you can format the date correctly like this:

<lastmod><?php echo date('c', $timestamp); ?></lastmod>

Time stamp could be time() (for current time) or some other method of fetching a unix tiemstamp like strtotime()

于 2012-08-02T15:07:01.073 回答
28

要以 W3C 日期时间编码(在 sitemap.xml 文件中使用)格式设置当前时间戳,请使用以下参数。

echo date('Y-m-dTH:i:sP', time());

从 PHP5 开始,您还可以使用 c 格式字符来打印完全相同的字符串。

echo date('c',time());

这些都将打印出以下内容:

2009-04-03T11:49:00+01:00

资源

于 2013-10-11T16:30:17.247 回答
20

要将 MySQL 的日期时间格式转换为站点地图中lastmod所需的格式,只需使用下面的 PHP 代码。

$lastmod = '2012-11-28 10:53:17'; //MySQL datetime format

$datetime = new DateTime($lastmod);
$result = $datetime->format('Y-m-d\TH:i:sP');

echo $result; //2012-11-28T10:53:17+01:00
于 2012-11-28T10:28:33.430 回答
11

根据 Google,他的值是一个可选字段,如果提供,必须格式化为

YYYY-MM-DDThh:mmTZD 

SQL 日期时间的默认导出取决于服务器的语言设置,并且可能包括空格和特征 TZD,例如:

2014-09-19 10:33:05 UTC

W3 指定TZD 可以在三个选项中的任何一个中格式化

TZD = 时区指示符(Z 或 +hh:mm 或 -hh:mm)

必须删除默认格式中的任何空格;必须在时间之前插入字符“T”,并且 TZD 必须与支持的类型之一匹配。

因此,要格式化当前时间戳,请使用以下参数。

echo date('Y-m-dTH:i:sP', time());

从 PHP5 开始,您还可以使用 c 格式字符来打印完全相同的字符串。

echo date('c',time());
于 2014-09-28T04:46:17.143 回答
5

我知道这个问题是关于 PHP 的,但我发现这个页面在谷歌上搜索 Node/JavaScript。所以最接近的等价物是Date.toISOString()

var d = new Date();
d.toISOString(); // "2017-04-19T07:23:16.040Z"
于 2017-04-19T07:28:20.933 回答
4

你得到这个输出是因为你使用了旧的推荐时间戳字符串

Y-m-dTH:i:sP.

然而,你需要的是

Y-m-d\TH:i:sP

这个单反斜杠会有所作为。在某些时候,大写 T 成为 PHP 中表示时间码的特殊字符,因此如果您不转义 T,您将得到您的报告。

于 2014-08-28T23:35:33.763 回答
2

您有很多格式可供选择。将c参数与date()函数一起使用将为您获得推荐的格式。

于 2012-08-02T15:07:20.583 回答
2

实际上,有两种方法。

第一种方法是为 XML 站点地图设置一个有效日期,其中包括给出值的“C”字符:(2019-06-03T17:30:21-05:00)在这里测试

<lastmod>'.date('c', strtotime($row['date'])).'</lastmod>

第二种方法是为 RSS 站点地图设置一个有效日期,其中包括给出值的“r”字符:(2019-03-07T17:55:44+00:00)

<pubDate>'.date('r', strtotime($row['date'])).'</pubDate>

希望这可以帮助你。谢谢

于 2019-06-05T00:44:59.290 回答
1

删除“EES”我的就像这样 2013-12-26T19:00:00-05:00 它工作 http://www.industry-automation-parts.com/1_e_0_sitemap.xml

于 2014-01-02T02:48:21.220 回答
0

用moment.js;

moment().format('YYY-MM-DDTHH:mm:ssZ')
于 2019-02-13T08:51:52.193 回答