RSS標(biāo)準(zhǔn)時間和Firefox折行的問題

2010-08-28 10:52:19來源:西部e網(wǎng)作者:

今天收到一封信件,是說西部e網(wǎng)(weste.net)的RSS顯示的問題的。一直用Windows操作系統(tǒng)和IE瀏覽器,竟然沒有發(fā)現(xiàn)這些錯誤,實在是慚愧。

以下是那位熱心朋友Li Qihong的的郵件內(nèi)容:

我是一名Linux下的用戶,我訂閱了貴站的RSS。大概從五月中旬開始,貴站的RSS就出現(xiàn)了一些小問題,主要如下:
1. 發(fā)送的日期永遠是1970年,這個問題大概是今年的5月16日開始的,使得我無法按日期排列;
2. 大概是從上個月開始,貴站的RSS的詳細內(nèi)容在瀏覽時都變成了一行一個字,閱讀起來非常麻煩,這個問題在Window下的Firefox瀏覽器中也存在。
我看RSS的工具是ThunderBird 2.0.0.0,操作平臺是FC4。

希望能在百忙之中能夠解決這兩個問題,謝謝!

其實這兩個問題解決起來非常簡單,一共花了我10分鐘時間。下面就說一下為什么會出現(xiàn)這樣的問題:

1、RSS日期的問題

嚴(yán)格來說,RSS的時間應(yīng)該為GMT時間(符合RFC822標(biāo)準(zhǔn)),但是一些Windows系統(tǒng)下RSS閱讀器其實并不在乎這個,只要是正確的時間格式就行。我用過一次ThunderBird,只是收信而已所以根本沒發(fā)現(xiàn)這個問題。Foxmail下面都是好的。

解決的方法:將2007-09-19 14:50:33這樣的格式轉(zhuǎn)換成了GMT時間Wes, 19 Sep 2007 14:50:33 +0800。這樣在ThunderBird下顯示就正常了。

RFC822標(biāo)準(zhǔn)是為“美國國防部高級研究計劃署”制定的文本信息(郵件傳輸)格式標(biāo)準(zhǔn)。

其中對日期格式是這樣定義的:

    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)

還是比較復(fù)雜的,網(wǎng)上peace.zhou曾經(jīng)寫了一段轉(zhuǎn)換程序,用起來還是不錯的:

'*************************************
'Coded By hooline 2006.9.8
'Email:hooline#gmail.com
'Msn:peace.zhou#msn.com
'功能:Asp轉(zhuǎn)換時間為GMT(RFC822)格式時間函數(shù)
'**************************************
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”。正是這個出現(xiàn)了問題,尤其在百分比的寬度下。去掉“table-layout:fixed”就好了。但是怎么樣才能解決既適應(yīng)IE又適應(yīng)Firefox的折行呢?麻煩呀!

關(guān)鍵詞:RSS

贊助商鏈接: