2012-05-09 5 views
0

Dans un nouveau projet, je travaille avec rss étant lu par PHP et affiché sur une page. Une chose que j'aimerais faire est de montrer combien de temps s'est écoulé depuis que le post a été publié, mais je n'arrive pas à trouver un moyen de le faire, c'est mon code actuel, j'espère que quelqu'un pourra m'aider!Temps depuis 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

double possible de [? PHP Comment trouver le temps écoulé depuis une date et heure] (http://stackoverflow.com/questions/2915864/php- comment trouver le temps écoulé depuis une date-heure) – jprofitt

Répondre

1

Vous pouvez comparer les horodatages unix;

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

Ensuite, vous pouvez voir à quelle distance il est séparé. Ces ci-dessous pourraient vous aider à le rendre plus lisible par vous-même:

$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

Hey! merci pour l'aide, mais maintenant juste une autre question, comment puis-je faire dire 1-60 minutes et après que 1 heure - 24 heures et après que le nombre de jours? – IanBauters

+0

if ($ hours_between_now_and_then> 24) {echo $ days_between_now_and_then. ' journées'; } else if ($ minutes_between_now_and_then> 60) {echo $ hours_between_now_and_then. ' heures'; } else {echo $ minutes_between_now_and_then. ' minutes'; } – scott