RSSを自作のHPに表示させようとしている最中ですが、

日付(pubData)を、日本語表示にするところで詰まっています。

過去記事の↓ こちらの回答者5の方を参考に、
http://q.hatena.ne.jp/1167659943
"XML 2 JSON service"を使用するやり方でやっています。

PubDateをそのまま表示すると、"Fri, 19 Jun 2009 18:00:00 +0900"のようになってしまいますが…
"2009年6月19日"のようにする書き方がイマイチわかりません…。

"XML 2 JSON service"を使用しないで出来る方法でもOKなのですが、
広告が出ないもので、出来ればjavaだけで動くものだとベストなのですが…

どなたか回答よろしくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2009/06/19 19:21:49
  • 終了:2009/06/20 00:09:26

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/06/19 20:12:48

ポイント50pt

回答5は存在しないので、どこをどのように参照しておられるのか判りませんが、

サンプルを作ってみましたので、確認してみてください。

<html>
<body>
<h1>JAVAScriptによる変換</h1>
<h2>(GMT形式の文字列型データから日付型データへの変換)</h2>
  <script type = "text/javascript">
     var PubDate = "Fri, 19 Jun 2009 18:00:00 +0900";
     document.write(PubDate + "<br />");
     var NewPubDate = new Date(PubDate) ;
     var Week = new Array( "日","月","火","水","木","金","土" );
     document.write(
          NewPubDate.getFullYear() + "年" + NewPubDate.getMonth() + "月" + 
          NewPubDate.getDay() + "日(" + Week[NewPubDate.getDay()] + ")" + "<br />"
     );
  </script>
</body>
</html>

※JAVA と JAVAScript は名前は似てますがまったく違うものなので面倒でも省略せずに書くようにしましょう。

 (javaスクリプト のようにカナ交じりでもOKです。ジャバスクリプトと書くのはあまり見ませんがOK範囲でしょう。)

id:hamadakun

すみません、参考URLが間違っていたようで…

http://q.hatena.ne.jp/1165960016

こちらでした。

<html>

<head></head>

<body>

<script type="text/javascript" src="http://app.drk7.jp/xml2json/var=HATENARSS&url=http://q.hatena.ne.jp/list/webmaster?mode=rss" charset = 'UTF-8'></script>

<script type="text/javascript"><!--</p> <p>var items = HATENARSS.data['channel']['item'];</p> <p>/* 表示設定 */</p> <p>var readCount = 10; //対象とする記事の件数</p> <p>var StrLengthDescript=150; //表示する本文の文字数</p> <p>/* 取得したデータを表示する */</p> <p>var html = '<dl>';</p> <p>for(var i = 0 ; i < items.length && i < readCount ; i++ ){</p> <p> var PubDate = items[i]["PubDate"];</p> <p> PubDate = PubDate.replace(" ", ""); //全角スペースを削除</p> <p> if(PubDate.length > StrLengthDescript){</p> <p> PubDate = PubDate.substr(0,StrLengthDescript)+'...'</p> <p> };</p> <p> html += '<dt><a href="' + items[i]["link"] + '">' + items[i]["title"] + '</a></dt><dd>'+ PubDate + '</dd>';</p> <p> };</p> <p> html += '</dl>';</p> <p> document.write(html); //--></p> <p></script>

</body>

</html>

のように書いてます。

上記の部分にどう組み込んだら良いのでしょうか??

2009/06/19 22:57:07

その他の回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/06/19 20:12:48ここでベストアンサー

ポイント50pt

回答5は存在しないので、どこをどのように参照しておられるのか判りませんが、

サンプルを作ってみましたので、確認してみてください。

<html>
<body>
<h1>JAVAScriptによる変換</h1>
<h2>(GMT形式の文字列型データから日付型データへの変換)</h2>
  <script type = "text/javascript">
     var PubDate = "Fri, 19 Jun 2009 18:00:00 +0900";
     document.write(PubDate + "<br />");
     var NewPubDate = new Date(PubDate) ;
     var Week = new Array( "日","月","火","水","木","金","土" );
     document.write(
          NewPubDate.getFullYear() + "年" + NewPubDate.getMonth() + "月" + 
          NewPubDate.getDay() + "日(" + Week[NewPubDate.getDay()] + ")" + "<br />"
     );
  </script>
</body>
</html>

※JAVA と JAVAScript は名前は似てますがまったく違うものなので面倒でも省略せずに書くようにしましょう。

 (javaスクリプト のようにカナ交じりでもOKです。ジャバスクリプトと書くのはあまり見ませんがOK範囲でしょう。)

id:hamadakun

すみません、参考URLが間違っていたようで…

http://q.hatena.ne.jp/1165960016

こちらでした。

<html>

<head></head>

<body>

<script type="text/javascript" src="http://app.drk7.jp/xml2json/var=HATENARSS&url=http://q.hatena.ne.jp/list/webmaster?mode=rss" charset = 'UTF-8'></script>

<script type="text/javascript"><!--</p> <p>var items = HATENARSS.data['channel']['item'];</p> <p>/* 表示設定 */</p> <p>var readCount = 10; //対象とする記事の件数</p> <p>var StrLengthDescript=150; //表示する本文の文字数</p> <p>/* 取得したデータを表示する */</p> <p>var html = '<dl>';</p> <p>for(var i = 0 ; i < items.length && i < readCount ; i++ ){</p> <p> var PubDate = items[i]["PubDate"];</p> <p> PubDate = PubDate.replace(" ", ""); //全角スペースを削除</p> <p> if(PubDate.length > StrLengthDescript){</p> <p> PubDate = PubDate.substr(0,StrLengthDescript)+'...'</p> <p> };</p> <p> html += '<dt><a href="' + items[i]["link"] + '">' + items[i]["title"] + '</a></dt><dd>'+ PubDate + '</dd>';</p> <p> };</p> <p> html += '</dl>';</p> <p> document.write(html); //--></p> <p></script>

</body>

</html>

のように書いてます。

上記の部分にどう組み込んだら良いのでしょうか??

2009/06/19 22:57:07
id:ratbeta No.2

ratbeta回答回数132ベストアンサー獲得回数92009/06/19 20:09:46

ポイント20pt

おそらくJavaScript(Javaではないですよね?)を使うのではないかと思うのですが、

http://www.tohoho-web.com/js/date.htm

に紹介されているようなDateオブジェクトを用いてみてはどうでしょうか。

id:hamadakun

ありがとうございます。ちょっと見てみます。

2009/06/19 22:58:48
  • id:kn1967
    終了処理なさったので蛇足かもしれませんが、
    hatenaの使い方に慣れておられず終了してしまった可能性も考慮して、補足しておきます。


    (1)曜日表示の準備
    この処理は最初のほうで一回だけ行っておけば良いので、
    とりあえず下記の場所にでも入れておくと良いでしょう。

    /* 表示設定 */
       ↓
    /* 表示設定 */
    var Week = new Array( "日","月","火","水","木","金","土" );


    (2)データ変換
    html文を生成する直前に変換処理を加えます。

    html += '<dt><a href="' + items[i]["link"] + '">' + items[i]["title"] + '</a></dt><dd>'+ PubDate + '</dd>';
      ↓
    var NewPubDate = Date(PubDate);
    PubDate = NewPubDate.getFullYear() + "年" + NewPubDate.getMonth() + "月" +
    NewPubDate.getDay() + "日(" + Week[NewPubDate.getDay()] + ")";
    html += '<dt><a href="' + items[i]["link"] + '">' + items[i]["title"] + '</a></dt><dd>'+ PubDate + '</dd>';


    ※曜日不要の場合は(1)は不要。(2)で加えるものも下記に変わります。
    var NewPubDate = Date(PubDate);
    PubDate = NewPubDate.getFullYear() + "年" + NewPubDate.getMonth() + "月" + NewPubDate.getDay() + "日";
  • id:hamadakun
    すみません、今回が初めての質問だったので、グダグダなコメントになってしまいました。
    作っていただいたサンプルを基に、上手く組み込むことが出来ました。

    ご親切、ご丁寧にありがとうございます。


この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません