- 締切済み
Google AJAX Feed APIについて
ライブドアブログに外部RSSを表示しているのですが、上手くカスタマイズできません。 現在はこのようになっていて http://imageshack.us/photo/my-images/850/sample1x.jpg/ これのように日付ごとに分けたいのです http://imageshack.us/photo/my-images/651/sample2s.jpg/ どのようにコードを書けば日付ごとに分けられますでしょうか? 以下に現在使用してるコードを書いておきます <script type="text/javascript" src="http://www.google.com/jsapi?key=*APIキー"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feedurl = "http://blog.livedoor.jp/dqnplus/index.rdf"; var feed = new google.feeds.Feed(feedurl); feed.setNumEntries(10); feed.load(dispfeed); function dispfeed(result){ if (!result.error){ var container = document.getElementById("feed"); var htmlstr = ""; htmlstr += '<h2></h2>'; htmlstr += "<p>" + "</p>"; htmlstr += "<ul>"; for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; htmlstr += "<li>" htmlstr += '<a href="' + entry.link + '">' + entry.title + '</a>'; var strdate = createDateString(entry.publishedDate); htmlstr += "(" + strdate + ")"; htmlstr += "</li>" } htmlstr += "</ul>"; container.innerHTML = htmlstr; }else{ alert(result.error.code + ":" + result.error.message); } } } function createDateString(publishedDate){ var pdate = new Date(publishedDate); var pday = pdate.getDate(); var pmonth = pdate.getMonth() + 1; var pyear = pdate.getFullYear(); var phour = pdate.getHours(); var pminute = pdate.getMinutes(); var psecond = pdate.getSeconds(); var strdate = + pmonth + "月" + pday + "日" + phour + "時" + pminute + "分"; return strdate; } google.setOnLoadCallback(initialize); </script>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- fujillin
- ベストアンサー率61% (1594/2576)
そのままでテストできないので、方法のみですが… result.feed.entries[]の配列をpublishedDateをキーにしてソートしてしまえばよさそう。 そのあとはご提示のコードと同じように最初から処理していって、日付が変わったら(日付)を出力し、各エントリの最後に付けるのは(時間、分)だけというふうにして、ループを回せばよさそう。 配列のソートは https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort sortではcompareFunctionが設定できるので、 function(a,b){ return a.publishedDate - b.publishedDate } みたいなことで並べ替えが可能かと思います。