首页 文章

RSS feed pubdate的正确格式是什么?

提问于
浏览
26

我无法正确运行RSS Feed的日期 . 你知道它的正确日期是什么吗?

我把它存储在一个名为creation_date的字段中,格式为:2012-08-14 10:17:12

然后我 grab 它:

$pubDate = $article[creation_date];

然后我转换它:

$pubDate= date("Y-m-d", strtotime($pubDate));

然后在我的商品标签中我放置它:

<pubdate>'.date("l, F d, Y", strtotime($pubDate)).'</pubdate>

有没有我没见过的东西?

9 回答

  • 5

    PHP日期函数已经有一种方法来格式化pubDate(RFC 2822)兼容日期:

    date('r', $timestamp);
    
  • 25

    解决了:

    $pubDate = $article[creation_date]; 
        $pubDate= date("D, d M Y H:i:s T", strtotime($pubDate));
    

    然后在我的echo代码中:

    <pubDate>'.$pubDate.'</pubDate>
    
  • 11

    使用以下格式: D, d M Y H:i:s O . 见http://php.net/manual/en/class.datetime.php

    或者使用DateTime常量以便更容易使用: DateTime::RSS

  • 5

    请参阅RSS 2.0 Specification中的 pubDate 定义:

    RSS中的所有日期时间均符合RFC 822的日期和时间规范,但年份可以用两个字符或四个字符(四个首选)表示 .

    以下是有效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>
    

    另见Problematical RFC 822 date-time value .

  • 11

    Rss pubDate 使用RFC 2822 standards . 您可以通过在Date函数上调用 r 参数在 php 中实现此目的,即:

    <?php
    $pubDate= date('r', time());
    echo "<pubDate>$pubDate</pubDate>";
    # <pubDate>Thu, 20 Nov 2014 18:59:18 UTC</pubDate>
    ?>
    

    如果您更喜欢DateTime类,请使用:

    $pubDate = new DateTime();
    echo $pubDate->format(DateTime::RSS);
    
  • 2

    怎么样 DateTime object (PHP 5 >= 5.2.0)

    \DateTime::createFromFormat(\DateTime::RSS, $RSSDate); // converting RSS date to object
    

    要么

    date(\DateTime::RSS, $timestamp); // formatting timestamp to RSS time
    

    或两者

    $dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate);
    date('d-M-Y H:i:s', $dto->getTimestamp()); // formatting RSS date to anything you want
    

    甚至更好

    $dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate);
    $formattedDate = $dto->format('d-M-Y H:i:s');
    
  • 52

    虽然接受的答案 ("D, d M Y H:i:s T") 大部分时间都按预期工作,但并非100%正确 . 在多语言情况下,此字符串可能会提供非英语文本,不会被接受为RFC兼容 . 要始终确保使用英语版本,请使用 "r" .

  • 6

    最简单的方法是使用DATE_RSS预定义常量(自PHP 5.1.0起可用) .

    $pubDate = date(DATE_RSS, strtotime($pubDate));
    
  • 1

    我用过这样的:

    $item->date = date('D, d M Y H:i:s GMT', strtotime($myBlogPublishedTime));
    

    my hp rss sample

相关问题