2010-07-25 8 views
9

Je me demandais comment je convertirais datetime en utilisant PHP pour travailler avec les flux RSS pubDate?Conversion de datetime MySQL en RSS pubDate en PHP?

Pourquoi mon navigateur est-il éteint pendant 3 heures lors de l'affichage de l'heure? Y a-t-il un moyen de corriger cela?

Répondre

5
<pubDate><? echo date("r", strtotime($data["added_on"])); ?></pubDate> 

Avec l'aimable autorisation du first google result sur mysql rss pubdate '

Edit: Le hors-temps est probablement en raison de problèmes de fuseau horaire; ce n'est pas votre navigateur, c'est probablement le moment de générer PHP. Avez-vous configuré votre instance PHP correctement?

Edit: Désolé pour la confusion des gars, j'ai oublié d'ajouter la remarque "Edit:". Pas besoin de bash sur le demandeur!

+0

Pourquoi mon navigateur est-il éteint pendant 3 heures lors de l'affichage de l'heure? – meta

+0

@meta Avez-vous même lu la réponse avant de commenter? Il vous l'a dit: c'est l'heure de PHP, alors vérifiez votre configuration timezone en PHP. –

+0

@Martin: avez-vous lu et comparé les horodatages du commentaire d'OP et de l'édition de Kander? – BoltClock

0

Utilisez strtotime() pour le convertir en timestamp Unix puis convertir en format souhaité à l'aide date()

12

En supposant $row est la ligne résultante de mysql_fetch_assoc() de votre résultat et votre colonne de date est appelée date:

<pubDate><?php echo gmdate(DATE_RSS, strtotime($row['date'])); ?></pubDate> 
5

Vous pouvez utiliser la classe DateTime comme suit:

$objDate = new DateTime($itemDate); 
$rssDate = $objDate->format(DateTime::RSS); 

Où $ row ['date'] est la date de votre ligne dans MySQL. $ rssDate contient la date RSS correctement formatée.

4
<?php 
$query = mysql_query("SELECT added_on FROM 'table'); 
while($row = mysql_fetch_array($query)){ 
?> 
<pubDate><? echo date("r", strtotime($data["added_on"]));} ?></pubDate> 

Comme BoltClock utilisé le gmdate vous obtiendrez le temps GMT, pour que vous puissiez déterminer votre position ne plus facile. Cela dit PHP est côté serveur donc votre navigateur peut être + - 3 heures parce que le serveur est dans un fuseau horaire de +3 à partir de votre navigateur. Si vous rencontrez ce problème localement, vérifiez locales bizarre.