我有一个用于事件信息的XML文件。 有一个条目是尼日利亚阿布贾。 我所看到的一切都表明时区缩写是WAT。 但是,w3 提要验证器说它是无效的。 如果我将 WAT 替换为 CST,它将验证。 似乎问题严格出在那个时区上。
W3 源验证器结果:
Sorry
This feed does not validate.
line 106, column 41: pubDate must be an RFC-822 date-time: Fri, 01 Nov 2013 16:00:00 WAT [help]
<pubDate>Fri, 01 Nov 2013 16:00:00 WAT</pubDate>
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:xxx="http://www.xxx.org/">
<channel>
<title>Upcoming Events</title>
<link>http://www.xxx.org</link>
<description></description>
<atom:link href="http://www.xxx.org/rss/Events.xml" rel="self" type="application/rss+xml" />
<item>
<title>xxx</title>
<xxx:host>Hosted by xxx</xxx:host>
<xxx:speaker>Speaking: xxx</xxx:speaker>
<dc:creator>xxx</dc:creator>
<pubDate>Fri, 01 Nov 2013 16:00:00 WAT</pubDate>
<xxx:extraDate1>Sat, 02 Nov 2013 16:00:00 WAT</xxx:extraDate1>
<xxx:extraDate2>Sun, 03 Nov 2013 07:00:00 WAT</xxx:extraDate2>
<xxx:endDate>Sun, 03 Nov 2013 15:00:00 WAT</xxx:endDate>
<link>http://www.xxx.org</link>
<xxx:venue>xxx</xxx:venue>
<xxx:address>xxx</xxx:address>
<xxx:location>xxx</xxx:location>
<xxx:zip></xxx:zip>
<xxx:phone>xxx</xxx:phone>
<xxx:notes></xxx:notes>
</item>
</channel>
</rss>
为简洁起见,该 XML 被编辑下来。 我有多个美国时区,但这是第一个外国时区。
该文件适用于RSS阅读器,我有一个PHP页面可以使用它。 问题是我正在使用一些JavaScript,并且它抛出了一个无效的XML错误。
<pubDate>
真的有问题吗? 如果有的话,我看不到。
规范非常明确:
http://asg.web.cmu.edu/rfc/rfc822.html#sec-5.1
zone = "UT" / "GMT" ; Universal Time
; North American : UT
/ "EST" / "EDT" ; Eastern: - 5/ - 4
/ "CST" / "CDT" ; Central: - 6/ - 5
/ "MST" / "MDT" ; Mountain: - 7/ - 6
/ "PST" / "PDT" ; Pacific: - 8/ - 7
/ 1ALPHA ; Military: Z = UT;
; A:-1; (J not used)
; M:-12; N:+1; Y:+12
/ ( ("+" / "-") 4DIGIT ) ; Local differential
; hours+min. (HHMM)
您需要使用本地差分(在本例中为 +0100
)