Page 1 sur 1
pb d'affichage d'une heure à partir d'un champ datetime
Posté : 26 oct. 2005, 14:53
par isachat666
Bonjour,
J'ai beau rechercher sur le forum je ne trouve pas pourquoi mon code n'affiche pas ce que j'attends. J'ai utilisé le tutoriel de minichat du site du zéro en ajoutant quelques petits trucs, notamment l'affichage de la date et l'heure.
ma requête est la suivante
Code : Tout sélectionner
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message',NOW())");
ensuite pour l'affichage je fais:
Code : Tout sélectionner
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,20");
$donnees = mysql_fetch_array($reponse)
$datepost = $donnees['datepost'];
$heurepost = date("H:i",$datepost);
echo "Le ".$datepost." à ".$heurepost
Mais à l'affichage j'ai toujours la même heure qui s'affiche: 01:33 (c'est l'heure à laquelle j'ai créé mon fichier)
Je suis persuadée que la solution est toute simple mais là je ne comprends pas ce qui se passe.
Merci de votre aide
Isa
Posté : 26 oct. 2005, 14:56
par mere-teresa
As-tu testé ta requête dans PHPMyAdmin ? Que renvoie-t-elle ? (autrement dit que contient $donnees ?)
D'autrepart, je ne comprends pas ce que tu veux ?
Voici ce que j'ai cru comprendre :
* tu vas chercher un timestamp dans ta BDD
* tu veux afficher l'heure en format heure:minute au lieu du timestamp
* tu n'as qu'un seul timestamp dans ta base, et c'est toujours le mm...
Posté : 26 oct. 2005, 15:01
par isachat666
merci de ta réponse.
dans ma bd, le contenu du champ est correct par ex:
2005-10-26 14:30:26
2005-10-26 14:45:12
je voudrais que mon code affiche (en fonction de cet exemple)
Le 26/10/2005 à 14:30
Le 26/10/2005 à 14:45
Or le résultat que j'obtiens est toujours
Le 26/10/2005 à 01:30
Le 26/10/2005 à 01:30
et je ne comprends pas pourquoi
merci
Isa
Posté : 26 oct. 2005, 15:07
par charabia
Tu peux utiliser ceci :
<?php
$reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,20");
$donnees = mysql_fetch_array($reponse)
$datepost = $donnees['datepost'];
$datepost = substr($d,8,2)."/"; // jour
$datepost = $datepost.substr($d,5,2)."/"; // mois
$datepost = $datepost.substr($d,0,4). " à "; // année
$datepost = $datepost.substr($d,11,5); // heures et minutes
echo $datepost;
}
?>
Posté : 26 oct. 2005, 15:29
par Truc
sinon tu peut formater directement depuis la requete:
$reponse = mysql_query('SELECT DATE_FORMAT(datepost,"%d/%c/%Y \à %H:%i") as date_form FROM minichat ORDER BY ID DESC LIMIT 0,20');
$donnees = mysql_fetch_array($reponse)
$datepost = $donnees['date_form'];
echo "Le ".$datepost;
Posté : 26 oct. 2005, 15:30
par isachat666
merci beaucoup charabia ça marche comme ça
(j'ai du rajouter
mais sinon ça fonctionne)
cependant j'aimerais bien savoir ce qui clochait dans mon code précédent...
Isa
Posté : 26 oct. 2005, 15:52
par Truc
cependant j'aimerais bien savoir ce qui clochait dans mon code précédent...
Isa
Le probleme vennait du fait que tu utilise la fonction
date() de php avec une date et non un timestamp.
Posté : 26 oct. 2005, 15:59
par isachat666
oui j'aurais du m'en douter
merci, voilà une réponse claire.
c'était tellement évident que je ne le voyais pas
à bientôt,
Isa
Posté : 26 oct. 2005, 16:09
par charabia
merci beaucoup charabia ça marche comme ça
(j'ai du rajouter
mais sinon ça fonctionne)
cependant j'aimerais bien savoir ce qui clochait dans mon code précédent...
Isa
Oups voui, un oubli de ma part
