Door
Frank WD
op 15-07-2012 02:48
gewijzigd op 15-07-2012 12:31
1.911 views
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:
<?php
// zet eerst de timezone van je dbserver op UTC
// foutafvanging daar gelaten
mysql_query("SET time_zone = 0");
// dit zet de mysql servers session timezone var op UTC
//daarna voer je deze query uit
mysql_query("SELECT DATE_FORMAT(pubdate, '%a, %d-%M-%Y %T 0000') FROM ....'");
?>
ik heb het niet getest, maar ik denk dat je dit in de goede richting brengt
Ik heb het nu zo:
<?php
$sQuery =("SET time_zone = 0");
// Er zit niks in $userErrors en dus is alles goed
$sQuery = "
SELECT
id,
artiest,
titel,
DATE_FORMAT(p_date, '%a, %d %M %Y %T 0000') AS pubdate
FROM
single
ORDER BY
id
DESC
";
?>
Alleen krijg de zelfde error.
Ik word gek van mysql:
Mijn vorige query (SET time_zone = 0) levert dus een foutmelding op
terwijl SET time_zone = '00:00' wel goed gaat
Dit soort gedrag is zoooooooo inconsequent
Ik heb beide geprobeerd, zowel van SanThe als Ger. Hij blijft op die pubDate error gooien. Tevens zet hij ook geen date in de Feed zelf zodra je hem bezoekt.
Als ik de p_date ophaal zoals de rest van de velden:
SELECT
id,
artiest,
titel,
cover,
weeknr,
jaar,
p_date AS pubdate
FROM
single
ORDER BY
id
DESC
Dan zet hij wel een date in de Feed als je hem bezoekt, maar ook hier natuurlijk met een error in de validator. Tevens word de tijd +02:00 gezet. Dus in db staat 23:00 hij zegt dan 01:00. De dag verspringt hier dan ook met +1.
[size=xsmall]Toevoeging op 16/07/2012 02:48:45:[/size]