Page 1 sur 1

Formater un current_timestamp

Posté : 24 mars 2011, 16:19
par Lilou000
Bonjour à tous !

Je me permets de poster un nouveau message car j'ai créé dans une BDD gérée par PhpmyAdmin un champs de type Timestamp. Avec par défaut "Current_Timestamp" pour qu'à chaque nouvel enregistrement dans la base, la date soit automatiquement ajoutée.
Pas de soucis, cela fonctionne !

Par contre lorsque j'appelle en php la date dans une page web, elle s'affiche comme ceci : 2011-03-23 10:22:00.

Et j'aimerai qu'elle s'affiche comme ceci : 23-03-2011 10:22:00

Comment puis-je faire ?

Un gros merci d'avance ;-)

Re: Formater un current_timestamp

Posté : 24 mars 2011, 18:23
par moogli
Salut,

Regarde date_format de mysql ça fait exactement ce que tu veut ;)

http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

@+

Re: Formater un current_timestamp

Posté : 25 mars 2011, 10:15
par Lilou000
Merci de ta réponse.
En fait voilà, j'ai un echo ".$result->date."

Le champs date de ma BDD est en current_timestamp.

Quel code je dois donc insérer pour formater ? (dsl je suis débutant en Php )

Encore un gros merci !!!

Re: Formater un current_timestamp

Posté : 25 mars 2011, 11:27
par telnes
hello

tu peux faire le "reformatage" au niveau de ta requete Mysql

$sql = 'SELECT mytimeCol WHERE id=1';

devient

$sql = 'SELECT DATE_FORMAT(mytimeCol, '%W %M %Y') as time WHERE id=1'; // un truc du genre

ce qui donnera -> '4th 97 Sat 04 10 Oct 277'

regarde la fonction DATE_FORMAT de mysql dans le lien du post précédent.

;)

++

Re: Formater un current_timestamp

Posté : 25 mars 2011, 12:08
par Lilou000
Merci mais après plusieurs essais, je n'y arrive toujours pas ...

Voilà mon code pour plus d'infos peut-être ?
Et donc ce que je veux formater en Français c'est <td>".$result->date."</td>

Code : Tout sélectionner

//connection au serveur $cnx = mysql_connect( "********", ""********", ", ""********", " ) ; //requête SQL: $sql = "SELECT * FROM formulaire_reprise WHERE statut_offre = 'EN COURS' OR statut_offre = 'NON TRAITEE' ORDER BY id DESC LIMIT $limit_start, $pagination" ; //exécution de la requête: $requete = mysql_query( $sql, $cnx ) ; echo("<table class=\"table1\" cellspacing=\"0\">"); echo("<tr><th scope=\"col\"></th><th scope=\"col\"></th><th scope=\"col\"></th><th scope=\"col\"></th><th scope=\"col\">DATE DE LA DEMANDE</th><th scope=\"col\">ID</th><th scope=\"col\">VENDEUR AFFECTE</th><th scope=\"col\">PRICER</th><th scope=\"col\">MARQUE</th><th scope=\"col\">MODELE</th><th scope=\"col\">VERSION</th><th scope=\"col\">IMMAT</th><th scope=\"col\">MEC</th><th scope=\"col\">ENERGIE</th><th scope=\"col\">TYPE</th><th scope=\"col\">BV</th><th scope=\"col\">NB PORTES</th><th scope=\"col\">KMS</th><th scope=\"col\">COULEUR EXT</th><th scope=\"col\">COULEUR INT</th><th scope=\"col\">OPTIONS</th><th scope=\"col\">ETAT GENERAL</th><th scope=\"col\">1ERE MAIN</th><th scope=\"col\">ORIGINE FRANCE</th><th scope=\"col\">CARNET ENTRETIEN</th><th scope=\"col\">FACTURES</th><th scope=\"col\">VO REPEINT</th><th scope=\"col\">VO ACCIDENTE</th><th scope=\"col\">COURROIE EFFECTUEE</th><th scope=\"col\">DERNIERE REVISION</th><th scope=\"col\">MOTEUR CHANGE</th><th scope=\"col\">EMBRAYAGE CHANGE</th><th scope=\"col\">BV CHANGEE</th><th scope=\"col\">COMPTEUR CHANGE</th><th scope=\"col\">ENGAGEMENT CT</th><th scope=\"col\">COMMENTAIRE</th><th scope=\"col\">OFFRE DE REPRISE</th><th scope=\"col\">STATUT OFFRE</th></tr>"); //affichage des données: while( $result = mysql_fetch_object( $requete ) ) { echo( "<tr onclick=\"this.style.background='#edffa5'\" ><td><a rel=\"prettyPhoto\" href=\"modification2.php?id=".$result->id."&iframe=true&width=60%&height=100%\"><img src=\"ajout-offre-de-reprise.png\" /></a></td><td><a rel=\"prettyPhoto\" href=\"defauts2.php?id=".$result->id."&iframe=true&width=60%&height=70%\"><img src=\"affiche_defauts.png\" /></a></td><td><a rel=\"prettyPhoto\" href=\"affichage-coordonnees-client.php?id=".$result->id."&iframe=true&width=70%&height=100%\"><img src=\"info-client.png\" /></a></td><td><a rel=\"prettyPhoto\" href=\"essai.php?id=".$result->id."&iframe=true&width=60%&height=100%\"><img src=\"envoi-vendeur.png\" /></a></td><td>".$result->date."</td><td>".$result->id."</td><td>".$result->vendeur."</td><td>".$result->pricer."</td><td>".$result->marque."</td><td>".$result->modele."</td><td>".$result->version."</td><td>".$result->immatriculation."</td><td>".$result->date_mec."</td><td>".$result->energie."</td><td>".$result->carrosserie."</td><td>".$result->boite_de_vitesses."</td><td>".$result->nombre_de_portes."</td><td>".$result->kilometrage."</td><td>".$result->couleur_exterieure."</td><td>".$result->couleur_interieure."</td><td>".$result->options."</td><td>".$result->etat_general."</td><td>".$result->premiere_main."</td><td>".$result->origine_france."</td><td>".$result->presence_carnet_entretien."</td><td>".$result->presence_factures."</td><td>".$result->vehicule_deja_repeint."</td><td>".$result->vehicule_deja_accidente."</td><td>".$result->courroie_de_distribution_effectuee."</td><td>".$result->kilometrage_lors_de_la_derniere_revision."</td><td>".$result->moteur_change."</td><td>".$result->embrayage_change."</td><td>".$result->boite_de_vitesse_change."</td><td>".$result->compteur_change."</td><td>".$result->engagement_client_ct."</td><td>".$result->commentaire."</td><td style=\"font-size:14px; font-weight:bold; background-image:url(no.jpg); background-color:#f2ba8e; color:#333333;\">".$result->offre_de_reprise." €</td><td style=\"font-size:14px; font-weight:bold; background-image:url(no.jpg); background-color:#f2ba8e; color:#333333;\">".$result->statut_offre."</td><td><a href=\"#\" onClick=\"confirme('".$result->id."')\" ><img src=\"suppr.png\" /></a></td></tr>\n" ) ; } echo("</table>");

Re: Formater un current_timestamp

Posté : 25 mars 2011, 12:25
par moogli
Salut,


A tu compris le fonctionnement de date format ? Et plus generalement comment on recupere une info depuis mysql ?

Pour info date est un mot clef sql il est préférable (pour ne pas dire plus que vivement tres recommandé) de n'a pas l'utiliser en nom de champ.
Idem pour le select * nomme clairement tes champs dans la requete cela evite d'en recuperer pour rien et même si tu les utilisent tous cela permet a ceux qui lisent ton code (moi en ce moment mais n'importe qui voulant t'aider par exemple) de mieux comprendre ton code.

Pour ce qui est de la date, mysql les stocks au format anglo-saxon. Le sgbd est sympa il te fournit une fonction native qui te permet de la formater comme tu le souhaite (date_format) telnes t'en montre un exemple d'utilisation dans sa réponse (adapter a ton code).
Le mot clef as permet de définir un "alias" d'un champ ou de le nommer. Ainsi dans son exemple telnes nomme la date formatée "time" ce qui fait que dans le traitement php tu recupere $result->time (avec la requete de telnes).

Il te reste donc a ajouter le date_format dans ta requete pour l'utiliser.

@+

Re: Formater un current_timestamp

Posté : 25 mars 2011, 17:02
par telnes
hello

pour la clarté du code utilise également les feuilles de styles (CSS) http://www.cssdebutant.com/ cela permet de déporter les style dans une page externe (et de centralisé/homogénéisé )

ensuite il y a les doubles quotes " et les simple quote '

echo 'toto';
et
echo "toto";

c'est presque pareil :) mais dans le cas des double quote php va regardé si il y a pas de var ($mavar) à remplacer !

donc echo '<a href="monlien">tdfsdcs</a>' est plus lisible (et prend moins de temps) que echo "<a href=\"monlien\">sqdvqds</a>" ...

enjoy the web

++