• ベストアンサー

Yahooのpipesより出力されたデーターをMagpieRSSを使用

Yahooのpipesより出力されたデーターをMagpieRSSを使用 Yahooのpipesより出力されたデーターをMagpieRSSを使用して日付を表示の仕方 pipesのRSSソースをみると <pubDate>Fri, 23 Apr 2010 20:12:17 -0700</pubDate> と表示されています。 【2010年4月23日】と表示したいのですが、どのようにphpに記述すればいいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Hohenheim
  • ベストアンサー率18% (43/237)
回答No.2

date関数の中でマルチバイト文字(日本語など)は利用すべきではありません。 面倒でも下記のようにしましょう。 また、dateのように同じ関数名と変数名を使うことは間違いではありませんが、紛らわしいので変えた方が良いでしょう。 $date_day = strtotime($item[pubdate]); $daystr = '【'. date('Y', $date_day) . '年' . date('m', $date_day) . '月' . date('d', $date_day) . '日】';

domudesu
質問者

お礼

有難うございます。 このように記述しましたら、希望通りの表記になりました。

その他の回答 (1)

回答No.1

$date_day = strtotime($item[pubdate]); $date = date('【Y年m月d日】', $date_day); で表示できないでしょうか。

domudesu
質問者

補足

morinokoe様 早速の回答有賀とございます。 以下のように記述しましたが文字化けします。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'rssのアドレス'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 2); //表示件数 $rss->items = array_slice($rss->items, 0, 5); foreach ($rss->items as $item ) { //日付表示 $date_day = strtotime($item[pubdate]); $date = date('【Y年m月d日】', $date_day); $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo "<li><b>$date</b><br><a href=\"$url\">$title</a></li>\n"; } ?> で記述しますと、 <li><b>・02010・04月23日・12</b><br><a href="URL">タイトル</a></li> と【】と年が黒点に文字化けし、日の後の黒点ごに数字が表示されます。