当前位置:首页>>软件教程>>网页制作>>新闻内容  |虚拟主机 主机托管
RSS标准时间和Firefox折行的问题
作者:icech 发布时间:2007-9-19 15:36:35 | 【字体:

今天收到一封信件,是说西部e网(weste.net)的RSS显示的问题的。一直用Windows操作系统和IE浏览器,竟然没有发现这些错误,实在是惭愧。

以下是那位热心朋友Li Qihong的的邮件内容:

我是一名Linux下的用户,我订阅了贵站的RSS。大概从五月中旬开始,贵站的RSS就出现了一些小问题,主要如下:
1. 发送的日期永远是1970年,这个问题大概是今年的5月16日开始的,使得我无法按日期排列;
2. 大概是从上个月开始,贵站的RSS的详细内容在浏览时都变成了一行一个字,阅读起来非常麻烦,这个问题在Window下的Firefox浏览器中也存在。
我看RSS的工具是ThunderBird 2.0.0.0,操作平台是FC4。

希望能在百忙之中能够解决这两个问题,谢谢!

其实这两个问题解决起来非常简单,一共花了我10分钟时间。下面就说一下为什么会出现这样的问题:

1、RSS日期的问题

严格来说,RSS的时间应该为GMT时间(符合RFC822标准),但是一些Windows系统下RSS阅读器其实并不在乎这个,只要是正确的时间格式就行。我用过一次ThunderBird,只是收信而已所以根本没发现这个问题。Foxmail下面都是好的。

解决的方法:将2007-09-19 14:50:33这样的格式转换成了GMT时间Wes, 19 Sep 2007 14:50:33 +0800。这样在ThunderBird下显示就正常了。

RFC822标准是为“美国国防部高级研究计划署”制定的文本信息(邮件传输)格式标准。

其中对日期格式是这样定义的:

    date-time   =  [ day "," ] date time         ; dd mm yy
                                                 ; hh:mm:ss zzz

     day         =  "Mon"  / "Tue" /  "Wed"  / "Thu"
                 /  "Fri"  / "Sat" /  "Sun"

     date        =  1*2DIGIT month 2DIGIT        ; day month year
                                                 ;  e.g. 20 Jun 82

     month       =  "Jan"  /  "Feb" /  "Mar"  /  "Apr"
                 /  "May"  /  "Jun" /  "Jul"  /  "Aug"
                 /  "Sep"  /  "Oct" /  "Nov"  /  "Dec"

     time        =  hour zone                    ; ANSI and Military

     hour        =  2DIGIT ":" 2DIGIT [":" 2DIGIT]
                                                 ; 00:00:00 - 23:59:59

     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)

还是比较复杂的,网上peace.zhou曾经写了一段转换程序,用起来还是不错的:

'*************************************
'Coded By hooline 2006.9.8
'Email:hooline#gmail.com
'Msn:peace.zhou#msn.com
'功能:Asp转换时间为GMT(RFC822)格式时间函数
'**************************************
Function DateTimeToGMT(sDate)
   Dim dWeek,dMonth
   Dim strZero,strZone
   strZero="00"
   strZone="+0800"
   dWeek=Array("Sun","Mon","Tue","Wes","Thu","Fri","Sat")
   dMonth=Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
   DateTimeToGMT = dWeek(WeekDay(sDate)-1)&", "&Right(strZero&Day(sDate),2)&" "&dMonth(Month(sDate)-1)&" "&Year(sDate)&" "&Right(strZero&Hour(sDate),2)&":"&Right(strZero&Minute(sDate),2)&":"&Right(strZero&Second(sDate),2)&" "&strZone
End Function

2、在Firefox下浏览文章时都变成了一行一个字

这个问题就是CSS兼容的问题了!

为了保证文章强制折行,我在css中使用了“table-layout:fixed”。正是这个出现了问题,尤其在百分比的宽度下。去掉“table-layout:fixed”就好了。但是怎么样才能解决既适应IE又适应Firefox的折行呢?麻烦呀!


文章来源:西部E网
·巧用Ajax和RSS做个人门户网站
·如何用RSS技术升级您的网站
·RSS的语言编码大全
·为自己的网站添加RSS功能
 放生
 愚爱
 够爱
 触电
 白狐
 葬爱
 光荣
 画心
 火花
 稻香
 小酒窝
 下雨天
 右手边
 安静了
 魔杰座
 你不像她
 边做边爱
 擦肩而过
 我的答铃
 怀念过去
 等一分钟
 放手去爱
 冰河时代
 你的承诺
 自由飞翔
 原谅我一次
 吻的太逼真
 左眼皮跳跳
 做你的爱人
 一定要爱你
 飞向别人的床
 爱上别人的人
 感动天感动地
 心在跳情在烧
 玫瑰花的葬礼
 有没有人告诉你
 即使知道要见面
 爱上你是一个错
 最后一次的温柔
 爱上你是我的错
 怎么会狠心伤害我
 不是因为寂寞才想
 亲爱的那不是爱情
 难道爱一个人有错
 寂寞的时候说爱我