-
Format de dates
Bonjour,
J'arrive maintenant a me connecter à une base SQL en PHP (grâce à ce forum) mais je rencontre déjà un problème (certainement enfantin) que je n'arrive pas résoudre.
Si je fais un ECHO d'une date retournée par un SELECT il l'affiche sous la forme Jan 27 2007 9:40AM qui me semble très difficile à exploiter.
Comment faire pour obtenir des chiffres au lieu de "Jan" et "AM" ?
Il me semble que cela doit pouvoir se faire facilement, mais j'ai beau chercher, je ne trouve pas :(
Désolé d'être aussi ignorant...
-
Je suis allé là :
[ame="http://www.google.fr/search?hl=fr&q=php+formatter+dates&btnG=Recherche+Google&meta=&aq=-1&oq=php+formatter+date"]php formatter dates - Recherche Google[/ame]
-
Je te remercie pour ta réponse.
Bien sûr j'avais déjà consulté cette page, et beaucoup d'autres, avant de poster sur le forum ;)
Les choses doivent être encore trop confuses dans ma tête au niveau de la différence entre MySql et SQL-Server.
Je commence à comprendre que "base SQL", comme je l'indique, n'a pas de sens, mais comme le forum concerne PHP & SQL-Server je pensais que ce serait clair tout de même.
J'ai l'habitude de manipuler les dates en PHP à partir de MySql et connais bien la fonction substr() mais quand je récupère une date MySql elle se présente sous forme de nombres et je n'ai pas de problème pour les organiser comme je le veux.
Ce qui me gêne dans le cas présent, avec SQL-Server, c'est la présence des lettres à la place de chiffres pour le mois et je ne pense pas que substr() puisse s'appliquer dans ce cas.
Je vais continuer à chercher :?
-
Au temps pour moi, je n'avais pas fait attention au fait que tu utilisais SQLServer.
Pour me faire pardonner, puis-je te proposer ce lien ?
http://www.spawnrider.net/blogs/2006...lserver_g_php/
-
Merci pour le lien.
Effectivement, j'ai déjà essayé avec : "CONVERT", sans arriver à un résultat satisfaisant, mais l'exemple en question va peut-être m'aider à avancer, une fois que j'aurai décodé : CONVERT(char(20),the_date,120).
Dans l'article il est écrit : Cependant, les champs de type DATETIME (sous-entendu TIMESTAMP) sont trés mal perçus lors d’une simple requête SQL à partir de PHP. 8O
Je ne comprends pas cette remarque, un champ de type DATETIME est bien différent d'un champ de type TIMESTAMP, non ? ou alors je ne comprends vraiment pas grand-chose aux formats de dates... ce qui est loin d'être exclu...
-
Effectivement, ils sont bien différents.
Le type timestamp est codé sur 4 octets et est représenté par un nombre (le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit).
Le type datetime, lui, est codé sur 8 octets.
A propos de convert, la doc est fournie ici : http://msdn.microsoft.com/fr-fr/library/ms187928.aspx
En fait, les paramètres sont : - le type de données qui sera donné en sortie (donc ici du char de longueur 20) ;
- une expression (ici, ton champ the_date);
- un style (la manière de représenter la date : jj/mm, jj/mm/aaaa... le détail est dans la doc).
-
Merci beaucoup !
Je me suis à nouveau penché sur "CONVERT" qui me semble maintenant beaucoup moins compliquée que je ne le pensais :)
Comme je découvre totalement SQL Server je m'étais un peu perdu la première fois... grâce à ton aide, je suis arrivé à convertir "Jan 1 1900 12:00AM" dans un format totalement numérique et donc beaucoup plus facile à manipuler.
Mon problème est donc résolu, avec ton aide :king:
-
Content d'avoir été utile :)