当前位置:首页 > PHP教程 > php应用 > 列表

PHP生成RSS pubDate所需日期时间格式的方法

发布:smiling 来源: PHP粉丝网  添加日期:2015-12-10 14:31:41 浏览: 评论:0 

简易信息聚合(也叫聚合内容)是一种RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议。RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,使用非常的多,下面我们来介绍在生成rss时pubDate所需日期时间格式的方法

SS / ATOM 的格式要产生都很简单, 麻烦的是日期格式的产生(RSS => pubDate, ATOM => created).

发现 PHP Date 有提供这些需要的相关全域变量可以使用:(PHP 5.1.1 以后开始支援这些全域变量)

  1. echo DATE_RSS; // D, d M Y H:i:s O 
  2.  
  3.    echo DATE_ATOM; // Y-m-d\TH:i:sP 
  4.  
  5.    echo date(DATE_RSS); // Wed, 23 Apr 2008 19:27:19 +0800 
  6.  
  7.    echo date(DATE_ATOM); // 2008-04-23T19:27:38+08:00 

如果是 MySQL timestamp/datetime format 直接拉出来的资料, 就可以直接使用:

date(DATE_RSS, ($MYSQL_DATETIME_DATA));

目前支持的日期全域变量有以下:

  1. DATE_ATOM: Atom  Atom (example: 2005-08-15T15:52:01+00:00) 
  2.  
  3.     DATE_COOKIE: HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC) 
  4.  
  5.     DATE_ISO8601: ISO-8601 (example: 2005-08-15T15:52:01+0000) 
  6.  
  7.     DATE_RFC822: RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000) 
  8.  
  9.     DATE_RFC850: RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC) 
  10.  
  11.     DATE_RFC1036: RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000) 
  12.  
  13.     DATE_RFC1123: RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) //phpfensi.com 
  14.  
  15.     DATE_RFC2822: RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000) 
  16.  
  17.     DATE_RFC3339: Same as DATE_ATOM 
  18.  
  19.     DATE_RSS: RSS (Mon, 15 Aug 2005 15:52:01 +0000) 
  20.  
  21.     DATE_W3C: World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00) 

PHP 预定义的日期格式

自 PHP 5.1.1 起定义有以下常量来提供标准日期表达方法,可以用于日期格式函数.

  1. echo DATE_RSS; // D, d M Y H:i:s O 
  2.  
  3.    echo DATE_ATOM; // Y-m-d\TH:i:sP 
  4.  
  5.    echo date(DATE_RSS); // Wed, 23 Apr 2008 19:27:19 +0800 
  6.  
  7.    echo date(DATE_ATOM); // 2008-04-23T19:27:38+08:00 

虽然格式简单,但用PHP内的预定义格式岂不更加方便.

目前PHP所有支持的日期格式:

  1. DATE_ATOM: Atom  Atom (example: 2005-08-15T15:52:01+00:00) 
  2.  
  3.     DATE_COOKIE: HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC) 
  4.  
  5.     DATE_ISO8601: ISO-8601 (example: 2005-08-15T15:52:01+0000) 
  6.  
  7.     DATE_RFC822: RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000) 
  8.  
  9.     DATE_RFC850: RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC) 
  10.  
  11.     DATE_RFC1036: RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000) 
  12.  
  13.     DATE_RFC1123: RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) 
  14.  
  15.     DATE_RFC2822: RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000) 
  16.  
  17.     DATE_RFC3339: Same as DATE_ATOM 
  18.  
  19.     DATE_RSS: RSS (Mon, 15 Aug 2005 15:52:01 +0000) 
  20.  
  21.     DATE_W3C: World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00) 

生成rss例子.

  1. header("Content-type: application/xml");  //定义header头,以防止chrome内核的浏览器不支持rss订阅,如果不支持就输出xml格式的文件 
  2. /** 
  3.  * 查询数据库,获取要输出rss的数据 
  4.  */ 
  5. $database = "nameofthedatabase"
  6. $dbconnect = mysql_pconnect(localhost, dbuser, dbpassword); 
  7. mysql_select_db($database$dbconnect); 
  8. $query = "select link, headline, description from `headlines` limit 15"
  9. $result = mysql_query($query$dbconnect); 
  10. while ($line = mysql_fetch_assoc($result)) { 
  11.     $return[] = $line
  12. $now = date("D, d M Y H:i:s T"); 
  13. $output = "<?xml version=\"1.0\" encoding=\"utf-8\"?> 
  14.             <rss version=\"2.0\"
  15.                 <channel> 
  16.                     <title>山东道路交通安全网-$lanmu</title> 
  17.                     <link>http://sdjtaq.cn/rss</link> 
  18.                     <description>Latest 100 articles of $lanmu</description> 
  19.                     <pubDate>$now</pubDate> 
  20.                     <lastBuildDate>$now</lastBuildDate> 
  21.                     <docs>http://someurl.com</docs> 
  22.                     <managingEditor>810706080@qq.com</managingEditor> 
  23.                     <webMaster>810706080@qq.com</webMaster> 
  24.             "; 
  25. foreach ($artList as $line) { 
  26.     $date = strtotime($line['add_time']); //将数据库的时间格式化成时间戳 
  27.     $output .= "<item> \n" //phpfensi.com 
  28.             . "<title>" . $line['title'] . "</title>\n" 
  29.             . " <link>http://sdjtaq.cn/aq_show_" . $line['id'] . ".html</link>\n" 
  30.             . "<description><![CDATA[" . $line['zhaiyao'] . "]]></description>\n" 
  31.             . "<pubDate>" . date("D, d M Y H:i:s O"$date) . "</pubDate>\n" 
  32.             . "</item>\n"
  33. $output .= "</channel>\n</rss>"
  34. echo $output;

Tags: PHP生成日期 pubDate

分享到: