今天收到一封信件,是說西部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的折行呢?麻煩呀!