RSS Feed Time fout

Status
Niet open voor verdere reacties.

eeyk

Terugkerende gebruiker
Lid geworden
28 mrt 2007
Berichten
1.232
als je naar mijn RSS feed kijkt.

http://crime-ware.nl/Games/rss.php?cat=1
http://crime-ware.nl/Games/rss.php?cat=2

dan zie je dat elke tijd het zelfde is maar de datum werkt wel.
overal is het 02:00 uur maar dit klopt niet..


**** = Privé

PHP:
<?php 
  if(!(@mysql_connect("localhost","id02117_******","******") && @mysql_select_db("id02117_******"))) {
print <<<ENDHTML
ERROR RSS FEED!
ENDHTML;
}
header("Content-Type: application/xml; charset=UTF-8");
echo '
<rss version="2.0"> 
<channel> 
<title>RSS FEED</title> 
<link>Http://www.crime-ware.nl/Games/index.php</link> 
<description>Game ware Laste nieuws RSS Feed..</description> 
<language>NL</language>';

if($_GET['cat'] == "1"){
$query = mysql_query("SELECT * FROM `nieuws1` ORDER BY id DESC LIMIT 10") or die(mysql_error());
}elseif($_GET['cat'] == "2"){
$query = mysql_query("SELECT * FROM `revie` ORDER BY id DESC LIMIT 10") or die(mysql_error());
}elseif($_GET['cat'] == "3"){
// $query = mysql_query("SELECT * FROM `nieuws1` ORDER BY id DESC LIMIT 10") or die(mysql_error());
}else{
echo "Deze catogorie is nog in de maak..";
}
while($show = mysql_fetch_object($query)) { 
    $nieuws = stripslashes($show->bericht);
    $nieuws = substr($nieuws, 0, 90); //Laat alleen de eerste 90 karakters zien. 
	  $nieuws	= preg_replace("/\[b\]/", " ",  $nieuws);
    $nieuws = preg_replace("/\[\/b\]/", " ",  $nieuws);
    echo '<item> 
		<source url="http://crime-ware.nl/Games/nieuws.php?id='.$show->id.'">http://crime-ware.nl/Games/index.php</source>
		<author>'.$show->naam.'</author>
		<pubDate>'.$show->datum.'</pubDate>
    <title>'.$show->subject.'</title> 
    <link>http://crime-ware.nl/Games/nieuws.php?id='.$show->id.'</link> 
    <description>'.$nieuws.'... </description> 
    </item>';
}
echo '</channel> 
</rss>'; 
?>
 
Laatst bewerkt:
In de bron staan de tijden wel goed, maar in firefox zie ik ook 2:00 staan. In internet explorer staan de tijden wel goed.

Volgens de rss2 specificatie moet <pubDate> voldoen aan RFC 822 en als voorbeeld wordt "Sat, 07 Sep 2002 00:00:01 GMT" gegeven. Jij gebruikt een ander formaat dus misschien ligt het daar aan. Als je zeker weet dat het formaat wel goed is heb je een bug in firefox gevonden.
 
ik gebruik gewoon


$datum = date("Y-m-d H:i:s");

en dit word in de database verwerkt als DATATIME : 000-00-00 00:00:00
 
Je hebt al bewezen met je code + rss voorbeelden dat het probleem niet in de data zit. Wat ik probeerde te zeggen is dat de manier waarop die data wordt weergegeven misschien niet volgens de rss2 standaard is (met als gevolg dat firefox de feed niet goed kan parsen).
 
wat kan ik nu doen om het te maken want je leg het wel uit maar ik snap het niet :p
 
MySQL heeft geen functie om een rfc datum te geven, php heeft wel zo'n optie in de date() functie. Die functie heeft op zijn beurt weer een unix timestamp nodig dus wijzig eerst de queries:

oud:
Code:
"SELECT * FROM `nieuws1` ORDER BY id DESC LIMIT 10"
"SELECT * FROM `revie` ORDER BY id DESC LIMIT 10"
nieuw: (ik ga er even vanuit dat de datum kolom "datum" heet)
Code:
"SELECT *, UNIX_TIMESTAMP(datum) as stamp FROM `nieuws1` ORDER BY id DESC LIMIT 10"
"SELECT *, UNIX_TIMESTAMP(datum) as stamp FROM `revie` ORDER BY id DESC LIMIT 10"
Nu heb je een extra kolom met de naam "stamp". Om het af te maken moet je regel 33 veranderen:

oud:
Code:
		<pubDate>'.$show->datum.'</pubDate>
nieuw:
Code:
		<pubDate>'.date("r",$show->stamp).'</pubDate>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan