こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

自作RSSリーダでライブドアブログを読み込む

自作のRSSリーダーを作ったのですが、ライブドアブログの更新時間が全て1970-01-01になってしまいます。PHPで
if ($item['dc']['date'] != '')
{
$dt = parse_w3cdtf($item['dc']['date']);
}
else if($item['pubdate'] != '') {
$dt = strtotime($item['pubdate']);
}
else
{
$dt = time();
}
といった感じにしています。何が悪いのかわからないので教えて下さい。

投稿日時 - 2007-03-13 06:09:21

QNo.2828425

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

あのぅ、質問に対しての回答になってないんですけども・・・
パースするまえに、
$item['dc']['date']
$item['pubdate']
にきちんと値は入ってるのでしょうか?
値がないのをパースしても仕方ないですし、
実際にきちんと値は入っているけでも、
parse_w3cdtfのパースの部分でこけてるのかが分りません。

投稿日時 - 2007-03-14 12:21:49

補足

すみません。
$item['dc']['date']には
2007-01-27T03:32:31+09:00
が入っていました。
$item['pubdate']には何も入っていません。
よろしくお願いいたします。

投稿日時 - 2007-03-18 03:02:33

ANo.1

$item['dc']['date']
$item['pubdate']
にそれぞれ、値がどのように入っているかを確認すれば、
いいように思います。

投稿日時 - 2007-03-13 12:57:03

補足

回答ありがとうございます。ライブドアブログのXMLを見てみると、
<dc:date>2007-01-27T03:32:31+09:00</dc:date>
となっています。
magpierssのparse_w3cdtf関数を使って上記のようにして、
date("y-m-d",$dt);
として変数へ代入echoで出力すると1970-01-01になってしまいます。
magpierssのdate_timestampを使用しても同様の結果です。他のRSSフィードはきちんと読み込まれますが、ライブドアブログだけこうなるんです。すみませんがよろしくお願いします。

投稿日時 - 2007-03-13 18:36:04

あなたにオススメの質問