WordPress中RSS输出的时间问题
以前因为看了不少这方面的文章,如chedong的不实的RSS时间好比是假的牛奶生产日期,所以我将rss-2.php中的时间从+0000改成了+0800,而且我一直以为这是对的,因为中国在GMT+8时区,但是我没注意到一点,那就是WP已经将文章的发布时间转成了格林尼治时间,也就是说如果你在WP>Options>General中将”Times in the weblog should differ by:”设为+8,那么RSS中的文章发布时间要比当地时间早8小时,所以RSS输出时不存在时间问题。
举个简单的例子:
你于北京时间2006年7月1日早上9点发了一篇文章(Sat, 01 July 2006 09:00:00),那么在RSS中文章发布时间就会是2006年7月1日凌晨1点(Sat, 01 July 2006 01:00:00)。有人会问怎么就提前8小时了呢?因为这是格林尼治时间,你再看一下RSS中的时间”Sat, 01 July 2006 01:00:00 +0000″,注意+0000,中国本应该是+0800。但是使用WP的人遍布全世界,总不能在安装说明里说:请根据你所在的时区,手动修改wp-rss2.php文件吧。那样会带来很多不必要的麻烦。
所以说RSS中pubDate的” mysql2date(’D, d M Y H:i:s +0000′ ” 没有错,如果改成+0800,那么你的RSS时间将比别人晚8小时,这应该是一般人所不期望的吧。
作者: Freeman | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://snsnow.com/blog/wordpress-rss-date-problem/
配置文件有的
但是在我的Blog中,后台选项设置了+8,然后feed-rss2.php文件也恢复了+0000,但是RSS的时间总是比我实际的发表时间(北京时间)早8个小时。到底要怎样才能让RSS中的时间跟文章发表时间一样?都使用北京时间,符合习惯。
[...] 这个问题可能跟不同的工具对时间的阅读有不同的方式,从feed源代码来看,wordpress使用+0000,跟时区设置无关;不同的阅读器都使用自己的计算方法得出结果,所以才会出现我说的有3种时间。根据车东说的WordPress的中文RSS FEED日期问题,标准的日期必须为rfc 822格式,类似于<pubDate>Sun, 26 Dec 2004 21:48:09 +0800</pubDate>。wordpress的默认feed没有遵守标准,所以就出现了时间错乱的Bug。实际上这个Bug从1.5之前就存在,但是现在还是没有改掉。我先找到这篇文章,于是改了wp-includes/feed-rss2.php,把+0000改成+0800,后来又看到这篇文章,搞得人脑袋晕,不知道说的是什么道理。现在我的feed时间还是先遵守rfc 822标准格式,使用+0800,IE显示的源代码里的还是GMT时间,不是发表日志的北京时间,改了之后,safari里早了16小时,FeedDemon和Bloglines正确,Outlook 2007里早了8小时。真是让人搞不明白。 [本文最后由 Allen 于 2008年1月13日, 03:39 上午 修改] Permalink: http://www.bunorte.cn/wordpress/feed-timezone-bug.html [...]
WordPress中RSS的时间是以GMT +0000为标准记录的,所以时间标准是没有问题的,但不过一些浏览器或RSS阅读器无法将它转化成当地时间而已。
要想都使用北京时间,符合习惯,估计很不好办,我也不知道怎样做才是正确的,个人觉得还是按默认的比较好,把其它事情交给浏览器和RSS阅读器好了。