Op het moment ben ik bezig om voor bepaalde onderwerpen van de website een RSS feed te maken. Dit lukt op het moment helemaal na wens, alleen loop ik tegen een probleem aan bij <pubDate>.

Mijn RSS word opgebouwd door middel van een database en SimpleXML. Zover ik kan lezen op internet houd de <pubDate> er een speciale date opbouw op na. Alleen weet ik dus niet hoe ik die moet op vragen in mijn Query.

Ik weet wel dat je door middel van:
DATE_FORMAT( p_date, '%d-%m-%Y' ) AS p_date

Een date na wens opbouw op te vragen, alleen de opbouw voor in de Query die ik nodig heb kan ik niet vinden. De opbouw die ik terug zal moeten krijgen is:
D, d M Y H:i:s T

Deze opbouw is dus voor de RSS item tag <pubDate>

Ik heb de volgende Query opbouw geprobeerd, omdat ik dacht het wel zal kloppen:
DATE_FORMAT( p_date, '%D, %d %M %Y %H:%i:%s %T' ) AS p_date

Maar dat ging niet en krijg ik nog steeds de melding dat de pubDate niet correct is.

Mijn vraag is dus: Hoe moet de opbouw in de Query zijn op tot het gewenste result te kunnen komen.

Joren, Ik krijg die melding nu niet meer. Hij geeft nu gewoon de Feeds weer. Alleen hij pakt de pubDate niet mee. Want in een RSS Feed Validator zie ik nergens de pubDate terug komen.

Zie ook even mijn aangepast post hier voor.
Regel 30: daar moet je checken of $result false is.

Echo verder $row['pubdate'] nog eens ergens om te zien of die nu wel het juiste formaat heeft?

ps. Probeer code altijd binnen het forum te houden. Dat praat makkelijker en geeft meer overzicht. Post dus stukjes relevante code gewoon hier ;-)
stukje van je script:
<?php
$result = mysql_query($sQuery, $sqlLink);
 
if( $sQuery === false )
?>

Ontdek het verschil.
Joren en Ger, super bedankt voor de input.
Ik krijg nu gewoon netjes mijn pubDate terug. Zit nu alleen nog met een Validator error op deze zelfde pubDate.

Validator error op pubDate:
line 2, column 314: pubDate must be an RFC-822 date-time: Sun, 15 Jul 2012 16:17:37 CEST [help]

... ><pubDate>Sun, 15 Jul 2012 16:17:37 CEST</pubDate><item><title>Joost de  ...
                                             ^
line 5, column 322: pubDate must be an RFC-822 date-time: 9th, 09 July 2012 23:00:00 UTC (79 occurrences) [help]

... ><pubDate>9th, 09 July 2012 23:00:00 UTC</pubDate><guid>96</guid></item> ...
Klopt helemaal, in ieder geval niet voor RSS feeds, dan mag het UT zijn, of een waarde vanaf UTC.Dat laatste is dus het simpelste
Als ik in de Validator kijk krijg ik de volgende pubDate terug.
<pubDate>9th, 09 July 2012 23:00:00 GMT</pubDate>


De query code voor de pubdate is nu:
DATE_FORMAT(p_date, '%D, %d %M %Y %T GMT') AS pubdate

GMT veranderen naar UTC heeft ook niet geholpen. Met het voorbeeld die Joren gaf de link, daar snap ik even niks van. Sorry
Let op dat GMT geen rekening houdt met zomer/winter tijd dus nu is de timezone 0200 maar over een half jaar 0100

[size=xsmall]Toevoeging op 15/07/2012 16:39:54:[/size]

vervang %D eens door %a
Oke dat snap ik en heb je natuurlijk gelijk aan. Hier dient dan wel op gelet te worden. Alleen hoe krijg ik de pubDate wel geldend voor de Validators.

Of heeft dit soort error geen invloed op de rest?

EDIT 1:
DATE_FORMAT(p_date, '%D, %d %M %Y %T UT') AS pubdate

Als ik de code in de query zo maak dan geeft de Validator geen meldingen meer op pubDate, alleen krijg ik geen feeds meer te zien.

EDIT 2:
Ik heb het nu zo:
DATE_FORMAT(p_date, '%a, %d %M %Y %T UT') AS pubdate

Helaas blijft Validator kl**en
Op de achtergrond staat in MySQL de datum altijd als UTC(GMT)
Dus voordat je jouw datum gaat samenstellen voor je RSS output kun je deze query doen:

SET time_zone = 0

Reageren