質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

5990閲覧

jQueryでRSSを表示する際の日付の記述方法は

hizirida

総合スコア36

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/01/18 08:01

編集2017/01/18 08:02

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ページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

namimon

2017/01/18 09:00

xml内の日付データの名前は分かりますか?
hizirida

2017/01/18 09:54

分かりません
guest

回答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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hizirida

2017/01/18 10:01 編集

すみません。この手は苦手なもので理解できません。 RSSはwordpress です。 参考にしたページはこちらです。 http://on-ze.com/archives/5043
退会済みユーザー

退会済みユーザー

2017/01/18 10:06

完璧ですね。  data[i].pubdate.textか data[i].pubDate.text を $('#feed').find('ul').append( の末にでも書いてみてください
hizirida

2017/01/18 10:53 編集

data[i].pubDate.text で表示されるようになりました。 がぁ、こんな感じに表示されます。 Sat, 14 Jan 2017 10:02:36 +0000 書式を変更することは可能ですかね。 例えば「2017年1月18日」な感じに
退会済みユーザー

退会済みユーザー

2017/01/18 13:57

```JavaScript var strDate = "Sat, 14 Jan 2017 10:02:36 +0000"; var date = new Date(strDate); var fdate = (dateFormat(date)); // これを出力します。 // dateFormat 関数の定義 // http://tacamy.hatenablog.com/entry/2013/03/14/220831 function dateFormat(date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var w = date.getDay(); m = ('0' + m).slice(-2); d = ('0' + d).slice(-2); // フォーマット整形済みの文字列を戻り値にする return y + '年' + m + '月' + d + '日'; } ``` fdate を$('#feed').find('ul').append( の末にでも書いてみてください
hizirida

2017/01/19 03:51 編集

すみません。 どこに何を追記してよいか分かりません。
guest

0

投稿2017/01/18 10:55

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hizirida

2017/01/19 04:01 編集

リンク先の追記と同じようにしましたが、うまく表示できませんでした。 <script> function formatDt(dt_string) { var dt = new Date(dt_string); var y = dt.getFullYear(); var m = ('00' + (dt.getMonth() + 1)).slice(-2); var d = ('00' + dt.getDate()).slice(-2); return y + '.' + m + '.' + d; } $.ajax({ url: 'http://xxxx/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++; }); $('#rss').wrapInner('<ul></ul>'); for (i in data) { $('#rss').find('ul').append('<li><p>' + formatDt(data[i].pubDate.text) + '</p><a href="' + data[i].link.text + '">' + data[i].title.text + '</a></li>'); } } } }); </script>
退会済みユーザー

退会済みユーザー

2017/01/19 04:02

基礎文法くらいは最低わかっていないと、理解はできないでしょうね…
hizirida

2017/01/19 04:06

ってことは、取り組んでも無駄ってことですかね・・・
退会済みユーザー

退会済みユーザー

2017/01/19 04:22

目的次第だと思います。動きさえすれば理解しなくたっていい場合と、プログラミングを理解して技術を身に付けたいのか、それ次第ですね。
hizirida

2017/01/19 04:27 編集

では、プログラミングを理解して技術を身に付けてから質問したほうが良いということ?
退会済みユーザー

退会済みユーザー

2017/01/19 04:27

プログラミングを理解する目的で質問するのなら歓迎ですよ。
guest

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hizirida

2017/01/19 05:06

無知なものですんません。 指摘していただいたところを変更しました。 <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) { var update = data[i].pubDate.text; var date = new Date(update); var update = dateFormat(date); $('#feed').find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a><br><a href="' + data[i].link.text + '">' + data[i].description.text + '</a><br>' + data[i].pubDate.text + '<hr></li>'); } } } }); function dateFormat(date) { var y = date.getFullYear(); var m = date.getMonth() + 1; var d = date.getDate(); var w = date.getDay(); m = ('0' + m).slice(-2); d = ('0' + d).slice(-2); // フォーマット整形済みの文字列を戻り値にする return y + '年' + m + '月' + d + '日'; } </script> が、何も表示されなくなりました。 で、下記を var update = data[i].pubdate.text; ↓ var update = data[i].pubDate.text; に変更してみると、 Sat, 31 Dec 2016 09:25:03 +0000 と表示されます。 どこが間違ってますかね。
退会済みユーザー

退会済みユーザー

2017/01/19 05:17

$('#feed').find 内の data[i].pubDate.textのところをupdate と変更してみてください
hizirida

2017/01/20 01:48 編集

できました! 今までの追記コードは変更した書式をupdateに置き換えるってことだったんですね。 気付くのおせーよって感です。ウフフ あいがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問