我无法正确运行RSS Feed的日期.你知道它的正确日期是什么吗?
我把它存储在一个名为creation_date的字段中,格式为:2012-08-14 10:17:12
然后我抓住它:
$pubDate = $article[creation_date];
Run Code Online (Sandbox Code Playgroud)
然后我转换它:
$pubDate= date("Y-m-d", strtotime($pubDate));
Run Code Online (Sandbox Code Playgroud)
然后在我的商品标签中我放置它:
<pubdate>'.date("l, F d, Y", strtotime($pubDate)).'</pubdate>
有没有我没见过的东西?
Neb*_*l54 57
PHP日期函数已经有一种方法来格式化pubDate(RFC 2822)兼容日期:
date('r', $timestamp);
Run Code Online (Sandbox Code Playgroud)
Dan*_*ein 22
解决了:
$pubDate = $article[creation_date];
$pubDate= date("D, d M Y H:i:s T", strtotime($pubDate));
Run Code Online (Sandbox Code Playgroud)
然后在我的echo代码中:
<pubDate>'.$pubDate.'</pubDate>
Run Code Online (Sandbox Code Playgroud)
spl*_*ash 13
请参阅RSS 2.0规范中的pubDate定义:
以下是有效RFC822日期时间的示例:
<pubDate>Wed, 02 Oct 2002 08:00:00 EST</pubDate>
<pubDate>Wed, 02 Oct 2002 13:00:00 GMT</pubDate>
<pubDate>Wed, 02 Oct 2002 15:00:00 +0200</pubDate>
Run Code Online (Sandbox Code Playgroud)
另请参阅有问题的RFC 822日期时间值.
Edd*_*Edd 11
使用以下格式:D, d M Y H:i:s O.见http://php.net/manual/en/class.datetime.php
或者使用DateTime常量以便更容易使用: DateTime::RSS
Rss pubDate使用RFC 2822标准.你可以php通过调用Date函数的r参数来实现这一点,即:
<?php
$pubDate= date('r', time());
echo "<pubDate>$pubDate</pubDate>";
# <pubDate>Thu, 20 Nov 2014 18:59:18 UTC</pubDate>
?>
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢DateTime类,请使用:
$pubDate = new DateTime();
echo $pubDate->format(DateTime::RSS);
Run Code Online (Sandbox Code Playgroud)
那DateTime对象呢(PHP 5> = 5.2.0)
\DateTime::createFromFormat(\DateTime::RSS, $RSSDate); // converting RSS date to object
Run Code Online (Sandbox Code Playgroud)
要么
date(\DateTime::RSS, $timestamp); // formatting timestamp to RSS time
Run Code Online (Sandbox Code Playgroud)
或两者
$dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate);
date('d-M-Y H:i:s', $dto->getTimestamp()); // formatting RSS date to anything you want
Run Code Online (Sandbox Code Playgroud)
甚至更好
$dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate);
$formattedDate = $dto->format('d-M-Y H:i:s');
Run Code Online (Sandbox Code Playgroud)
小智 5
虽然接受的答案("D, d M Y H:i:s T")在大多数情况下按预期工作,但并非100%正确.在多语言情况下,此字符串可能会提供非英语文本,不会被接受为RFC兼容.要始终确保使用英文版本,请使用"r".