jQueryでRSSを表示する際の、日付の記述方法を教えてください。
現状はこんな感じです。
<script> $.ajax({ url: 'http://www.example.com/blog/?feed=rss2', type: 'get', dataType: 'xml', timeout: 5000, success: function(xml, status) { if (status === 'success') { var row = 0; var data = []; var nodeName; $(xml).find('item').each(function() { data[row] = {}; $(this).children().each(function() { nodeName = $(this)[0].nodeName; data[row][nodeName] = {}; attributes = $(this)[0].attributes; for (var i in attributes) { data[row][nodeName][attributes[i].name] = attributes[i].value; } data[row][nodeName]['text'] = $(this).text(); }); row++; }); $('#feed').wrapInner('<ul></ul>'); for (i in data) { $('#feed').find('ul').append('<li><strong><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></strong><br><a href="' + data[i].link.text + '">' + data[i].description.text + '</a><hr></li>'); } } } }); </script>
data[i].description.text の次を改行させ、日付を表示させたい。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/18 09:54
回答3件
0
RSSの書式は分かりませんが、
JavaSctipt
1 data[i].pubdate.text
と推察します。
console.log(data[i]);
をfor(i in data)に仕込んめば内部構造は分かりますよ。
結構ややこしくなっていますけどw
RSSの例もあげた方が回答を得られやすいですね。
投稿2017/01/18 09:13
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/18 10:01 編集
退会済みユーザー
2017/01/18 10:06
2017/01/18 10:53 編集
退会済みユーザー
2017/01/18 13:57
2017/01/19 03:51 編集
0
投稿2017/01/18 10:55
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/19 04:01 編集
退会済みユーザー
2017/01/19 04:02
2017/01/19 04:06
退会済みユーザー
2017/01/19 04:22
2017/01/19 04:27 編集
退会済みユーザー
2017/01/19 04:27
退会済みユーザー
2017/01/19 04:30
0
ベストアンサー
書くことが多くなりましたので別に書かせていただきます。
JavaScript
1<script> 2$.ajax({ 3 url: 'http://www.example.com/blog/?feed=rss2', 4 type: 'get', 5 dataType: 'xml', 6 timeout: 5000, 7 success: function(xml, status) { 8 if (status === 'success') { 9 var row = 0; 10 var data = []; 11 var nodeName; 12 $(xml).find('item').each(function() { 13 data[row] = {}; 14 $(this).children().each(function() { 15 nodeName = $(this)[0].nodeName; 16 data[row][nodeName] = {}; 17 attributes = $(this)[0].attributes; 18 for (var i in attributes) { 19 data[row][nodeName][attributes[i].name] = attributes[i].value; 20 } 21 data[row][nodeName]['text'] = $(this).text(); 22 }); 23 row++; 24 }); 25 $('#feed').wrapInner('<ul></ul>'); 26 for (i in data) { 27 var update = data[i].pubdate.text; 28 var date = new Date(update); 29 var update = dateFormat(date); // ← これを下のappend内に記述する 30 31 $('#feed').find('ul').append('<li><strong><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></strong><br><a href="' + data[i].link.text + '">' + data[i].description.text + '</a><hr></li>'); 32 } 33 } 34 } 35}); 36 37 38 39// dateFormat 関数の定義 40// http://tacamy.hatenablog.com/entry/2013/03/14/220831 41function dateFormat(date) { 42var y = date.getFullYear(); 43var m = date.getMonth() + 1; 44var d = date.getDate(); 45var w = date.getDay(); 46 47m = ('0' + m).slice(-2); 48d = ('0' + d).slice(-2); 49 50// フォーマット整形済みの文字列を戻り値にする 51return y + '年' + m + '月' + d + '日'; 52} 53 54</script>
var update = dateFormat(date); // ← これを下のappend内に記述する $('#feed').find('ul').append('<li><strong><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></strong><br><a href="' + data[i].link.text + '">' + data[i].description.text + '</a><hr></li>');
の部分のupdateをfeedのappendのお好きなところに登録してみてください。
投稿2017/01/19 04:04
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/19 05:06
退会済みユーザー
2017/01/19 05:17
2017/01/20 01:48 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。