2012-05-09 6 views
0

新しいプロジェクトでは、rssをPHPで読み込んでページに表示しています。 私がしたいことの1つは、投稿が公開されてからどれくらいの時間が経過したかを示すことですが、これを行う方法が見つからない、これは私の現在のコードです。pubDateからの時間

echo "<div id=\"left\">"; 
    $rss1 = new DOMDocument(); 
    $rss1->load('http://www.macfan.nl/macfan.rss'); 
    echo '<h2>MacFan</h2>'; 
    $feed = array(); 
    foreach ($rss1->getElementsByTagName('item') as $node) { 
     $item = array ( 
      'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 
      'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 
      'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue, 
      ); 
     array_push($feed, $item); 
    } 
    $limit = 5; 
    for($x=0;$x<$limit;$x++) { 
     $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']); 
     $link = $feed[$x]['link']; 
     $date = date('F d', strtotime($feed[$x]['date'])); 
     echo '<p><a href="'.$link.'" title="'.$title.'">'.$title.'</a></p>'; 
     echo "<p class=\"small\">$date</p>"; 
    } 
echo "</div>"; 
+0

の可能重複[?PHPの日付時刻からの経過時間を見つける方法】(http://stackoverflow.com/questions/2915864/php-時間の経過を知る方法) – jprofitt

答えて

1

UNIXのタイムスタンプを比較できます。

$seconds_between_now_and_then=(time()-strtotime($feed[$x]['date'])); 

次に、どのくらい離れているかを確認できます。これらは、以下のあなた自身のためにそれをより読みやすく助けることができる:

$minutes_between_now_and_then=$seconds_between_now_and_then/60; 
$hours_between_now_and_then=$minutes_between_now_and_then/60; 
$days_between_now_and_then=$minutes_between_now_and_then/24; 

echo 'Seconds:'.$seconds_between_now_and_then.'<br />'; 
echo 'Minutes:'.$minutes_between_now_and_then.'<br />'; 
echo 'Hours:'.$hours_between_now_and_then.'<br />'; 
echo 'Days:'.$days_between_now_and_then; 
+0

ちょっと!助けてくれてありがとうが、もう一つの質問です。どうすれば1〜60分後に1時間〜24時間後に何日もかかると言いますか? – IanBauters

+0

if($ hours_between_now_and_then> 24){echo $ days_between_now_and_then。 '日々'; } else if($ minutes_between_now_and_then> 60){echo $ hours_between_now_and_then。 '時間 '; } else {echo $ minutes_between_now_and_then。 '分; } – scott

関連する問題