Version complète: sur le forum Webmaster Hub : Reformater une date
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
nebuchad34
Bonsoir,
je m'en remet à vous car je n'y connais strictement rien, que ça fait déjà une heure et demi que je cherche et que je n'ai rien trouvé.

Voilà je suis en train de créer une page php qui me génère un flux rss à partir d'une base de donnée mysql (qui comprend toutes les news de mon site).
Tout fonctionne parfaitement sauf la date qui affiche le 1er janvier 1970 (début standard du Time Stamp d'après ce que j'ai compris en charchant un peu sur google).

j'assigne à une variable $date la date correspondante dans la base :

$date=$lig["date_news"];

si je fait un echo $date à ce moment là j'obtient bien la valeur de "date_news" formatée ainsi Y-M-d H:i:s
Or, en rss il faut que la date soit absolument formaté de la façon suivante : D, d M Y H:i:s +0100

j'ai essayé $datephp=date("D, d M Y H:i:s +0100", $date) mais c là que ça me renvoi le 1er janvier 1970.


j'ai même essayé d'extraire les caractères de "date_news" avec la fonction substring() en bidouillant mais ça ne marche pas.


Merci de votre aide.
captain_torche
Avant d'effectuer $datephp = date("D, d M Y H:i:s +0100", $date), il faudrait que tu transformes ta première date en timestamp, la fonction date() n'acceptant qu'un timestamp (nombre de secondes depuis le 1er janvier 1970) en second paramètre.
Pour cela, tu peux utiliser la fonction strtotime(), qui devrait fonctionner.

CODE
<?php
$date = strtotime($date);
$datephp = date("D, d M Y H:i:s +0100", $date);
?>
nebuchad34
non ça ne marche pas. J'avais espoir pourtant.

Merci quand même. Je ne sais pas comment je vais m'en sortir...
captain_torche
Qu'obtiens-tu quand tu fais
$date = strtotime($date); ?

Je viens de tester en local, ça fonctionne chez moi.
nebuchad34
non c bon ça marche, mais il fallait rajouter les '' autour de $date dans strtotime:

ça donne $date = strtotime('$date'); et là ça marche !!!

Merci mille fois

EDIT : en fait y'a pa sles guillemets, je me suis fait piéger par le cache de mon navigateur thumbdown.gif

encore merci
captain_torche
Pas de quoi wink.gif
Dan
Sinon on peut aussi utiliser la fonction DATE_FORMAT() de mysql. C'est encore le plus simple à mon avis wink.gif

http://dev.mysql.com/doc/refman/5.0/fr/dat...-functions.html

Dan
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.