[RESOLU] Date format

Eléphant du PHP | 134 Messages

13 août 2012, 17:57

Bonjour
Avec la requète : $sql = 'SELECT * FROM materiels ORDER BY designation ';

Sachant que mon champ date est : dateaffiche , comment je peux faire pour que celle-ci soit en français. Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 août 2012, 20:07

salut,

tu indique toi même une solution dans ton titre :
- mysql => date_format : date et fonction de temps avec mysql
- avec php la classe la classe datetime (tu peux même faire faire la traduction des mois / jours par php si tu veux).

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

14 août 2012, 10:55

Pour la lecture Mysql :
En général j'utilise date_format() de mysql pour être sur du format de la date en mode string.
Je transforme la date en datetime PHP avec la fonction date_create_from_format()

Pour l'affichage : fonction date() pour m'assurer du format

Mon principe est d'avoir un format datetime dans mes variables PHP et de faire la transformation en string lorsque j'en ai besoin. Idem avec mysql ou je passe par un format string explicite en lecture comme en écriture.

ViPHP
AB
ViPHP | 5818 Messages

14 août 2012, 21:08

Tu peux regarder aussi du côté de http://www.php.net/manual/fr/function.strftime.php pour un affichage textuel qui se base sur la locale setlocale(LC_TIME, "fr_FR");

Eléphant du PHP | 134 Messages

15 août 2012, 13:50

Bonjour,

Merci pour vos réponse !


mais le soucis c'est que je ne sais pas l'inclure c'est que je ne sais comment formuler la requête:
SELECT id,DATE_FORMAT((`date_affiche`), '%d/%m/%Y à %Hh:%i.') date_affiche,sujet,datebutoir,priorite,observation,etat FROM memo_magasin  WHERE etat = 'En Attente' ORDER BY id DESC LIMIT 100"); 
ou insérer :
DATE_FORMAT((`date_affiche`), '%d/%m/%Y à %Hh:%i.')
dans :
$sql = 'SELECT * FROM materiels ORDER BY id ';
Merci d'avance :roll:

ViPHP
AB
ViPHP | 5818 Messages

15 août 2012, 19:06

SELECT id,DATE_FORMAT(date_affiche, '%d/%m/%Y à %Hh:%i.' ) AS 'datef',sujet,datebutoir,priorite,observation,etat FROM memo_magasin  WHERE etat = 'En Attente' ORDER BY id DESC LIMIT 100
Tu peux créer un allias, ici j'ai choisi 'datef', qui récupère ta date formatée. Le jeux de résultat de ta requête contiendra ce nouvel index avec la valeur correspondante.

Si tu veux garder l'étoile pour sélectionner tous tes champs tu peux faire
$sql = "SELECT *,DATE_FORMAT(dateaffiche, '%d/%m/%Y à %Hh:%i.' ) AS 'datef' FROM materiels ORDER BY designation";
Evidemment il faut faire attention que le nom de l'allias que tu choisis après le 'AS' soit différent des noms des champs de ta table.

Eléphant du PHP | 134 Messages

15 août 2012, 20:57

Merci je vais essayer le résultat dans datatable , Bonne soirée et merci pour ton aide. :D

Eléphant du PHP | 134 Messages

15 août 2012, 22:43

Re


Bonsoir , bon je viens d'essayer impecable cela fonctionne bien , merci encore AB

et bien sûr merci aux autres ayant participer à résoudre mon problème. :lol:

En tout cas mieux que le site zéro qui te prenne de haut sans résoudre ou d'aider . =D>

@+