2009-08-18 3 views
0

私は強力なASPクラシック開発者ではありませんが、私は仕事でこのアプリケーションをサポートすることを任されています短い日付形式のRSSフィード日付。と私は解決策を見つけるように見えることはできません。RFC-32日付形式を短い日付(MM/DD/YYYY)でASPを指定する

私はこのフォーマットがあります。

Wed, 10 Jun 2009 12:46:13 +0000 

を、私はこのフォーマットにそれを取得する必要があります:

06/10/2009 

は、これまでのところ私は、ASPのために、このRSSフィードスクリプトをいじってきた:

<% 
' change the RSSURL variable to the exact URL of the RSS Feed you want to pull 
RSSURL = "{url to rss feed}" 

Dim objHTTP ' this object is used to call the RSS Feed remotely 
Dim RSSURL,RSSFeed ' these variables hold the URL and Content for the RSS Feed 
Dim xmlRSSFeed ' this variable hold the XML data in a DOM Object 
Dim objItems,objItem, objChild ' these variables are used to temporarily hold data from the various RSS Items 
Dim title,description,link ' these are local variables that will hold the data to be displayed 
Dim pubDate 
Dim RSSOutput ' variable will hold the HTML that was converted from the RSS Feed 

' this code requests the raw RSS/XML and saves the response as a string <RSSFeed> 
Set objHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP") 
objHTTP.open "GET",RSSURL,false 
objHTTP.send 
RSSFeed = objHTTP.responseText 

' this code takes the raw RSSFeed and loads it into an XML Object 
Set xmlRSSFeed = Server.CreateObject("MSXML2.DomDocument.4.0") 
xmlRSSFeed.async = false 
xmlRSSFeed.LoadXml(RSSFeed) 

' this code disposes of the object we called the feed with 
Set objHTTP = Nothing 

' this is where you determine how to display the content from the RSS Feed 

' this code grabs all the "items" in the RSS Feed 
Set objItems = xmlRSSFeed.getElementsByTagName("item") 

' this code disposes of the XML object that contained the entire feed 
Set xmlRSSFeed = Nothing 

' loop over all the items in the RSS Feed 
For x = 0 to 3 
    ' this code places the content from the various RSS nodes into local variables 
    Set objItem = objItems.item(x) 
    For Each objChild in objItem.childNodes 
     Select Case LCase(objChild.nodeName) 
      Case "title" 
        title = objChild.text 
      Case "link" 
        link = objChild.text 
      Case "description" 
        description = objChild.text 
      Case "pubdate" 
        pubDate = objChild.text 
     End Select 
    Next 
    ' Format display output 
    RSSOutput = RSSOutput & "<tr><td valign='top' style='width:75px; height: 34px;' class='addresstext2'><b>"& pubDate &"</b></td><td valign='top'><a class=ccc href=""" & link & """>" & title & "</a></td></tr>"  

Next 

%>

私はRSSからpubDateを取得するので、それは文字列であると信じています。私はそれをCDateしようとすると型の不一致が発生し、Format()と同じ問題も試しました。誰もが必要なものにこの日付をフォーマットする方法を提案することはできますか?

ありがとうございます!

答えて

2

Rssは、RFC822で指定された形式を使用します。

は、私がthis threadに機能が見つかりました:

function parseRSSDate(sRSSDate) 
' take RFC822-formatted date string and return VBScript date object 
' ie: "Fri, 13 Jun 2008 16:33:50 GMT" 

dim sDay, sMonthName, sMonthNum, sYear, sHour, sMinute, sSecond 
dim oRE, oMatches, oMatch 
dim sDate, oDate 

set oRE = new regexp 
    oRE.IgnoreCase = True 
    oRE.Global  = True 
    oRE.Pattern  = "^([A-Za-z]{3}),\s([0-9]{1,2})\s([A-Za-z]{3})\s([0-9]{4})\s([0-9]{2}):([0-9]{2}):([0-9]{2})" 
    set oMatches = oRE.Execute(sRSSDate) 
     if oMatches.count > 0 then 
      set oMatch = oMatches(0) 
       sDay  = oMatch.SubMatches(1) 
       sMonthName = oMatch.SubMatches(2) 
       sMonthNum = monthVal(sMonthName) 
       sYear  = oMatch.SubMatches(3) 
       sHour  = oMatch.SubMatches(4) 
       sMinute  = oMatch.SubMatches(5) 
       sSecond  = oMatch.SubMatches(6) 
       sDate = sMonthNum & "/" & sDay & "/" & sYear 
       oDate = cDate(sDate) 
      set oMatch = nothing 
     end if 
    set oMatches = nothing 
set oRE = nothing 
parseRSSDate = oDate 
end function 

が、それはまた、単に月の名前の番号を返すmonthValという関数を呼び出します:

コード:

function monthVal(sMonthName) 
' return month number (1-12) from month name 
dim rv 
dim aMonths : aMonths = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec") 
for i = 0 to uBound(aMonths) 
    if sMonthName = aMonths(i) then rv = i+1 
next 
monthVal = rv 
end function 
+0

恐ろしいです、早かった!ありがとう、私はそこに逃したとは思わない、私はGoogleを介してRSSDate形式などの結果を見つけることができませんでした。 – Jakub

+0

問題ありません。私はrssの日付形式がRFC822であることを知っていたので、vbscriptおよび/またはaspと組み合わせて検索しました。 – Espo