YahooブログのRSS所得で日付が表示されない
今のサイトではMagpie RSSを使ってブログのRSSを所得できるようにしています。
アメブロやseesaaブログからは問題無かったのですが、今回友人のサイトにこれを設置したところ日付が“1969年12月31日”になってしまうトラブルに見舞われました。
ヤフーではRSS2.0、RSS1.0、RSS0.91の3種類選べるのですがすべてダメ(泣)
いろいろ調べてみると、日付がうまく所得できていない場合に“1970年01月01日”のように表示されるということが判明しました。
今回の日付は1日違いなのでこれも謎なのですが・・・
日付の所得がうまくできていないことは確かなようです。
小一時間ほど悩んだのですが下記のサイトの方法を試すとうまく表示できるようになりました!
具体的には日付を所得するところで
<?php echo date('Y年m月d日',parse_w3cdtf($item['dc']['date']))?>
だったところを
<?php echo date('Y年m月d日',strtotime($item[pubdate]))?>
としました。
他のブログから所得したRSSだと
<?php echo $item['dc']['date']; ?>
と書くと日付が表示されるのですがYahooブログの場合は何も表示されません。
しかし、両者のRSSのソースを見ると日付はどちらも<pubDate>に書かれてて差が見あたらなかったんですよね…
RSSやPHPのことをもっと勉強しないと解明できそうにないかな、これは。
なにはともあれこれで解決できるのでもしお悩みの人がいたら参考にしてみて下さい。
ちなみに、strtotimeは英文形式の日時をUNIXタイムスタンプに変換する関数です。
スポンサーリンク