Affichage format date français

a marqué ce sujet comme résolu.

Bonjour,

je stock des données de format différent (nombre, texte, date) dans une même variable de type varchar(255) pour ensuite les afficher à l’utilisateur cette variable s’appelle DETAILS vous trouverez çà "bizarre" mais je n’ai pas le choix

du coup, je me retrouve à afficher des dates au format PhP MyAdmin (aaaa-mm-jj)

comment faire pour convertir uniquement les dates de la variable DETAILS au format jj/mm/aaaa pour l’afficher à l’utilisateur ?

d’avance merci pour votre aide

Salut,

As-tu au moins cherché sur Google (ou un autre moteur de recherche de ton choix)  ?

Rien de bien compliqué, il suffit de formater ta date au bon format avec les bonnes fonctions.


P.S. : pour la prochaine fois, pense à préciser dans quel(s) langage(s) tu travailles, tout le monde n’a pas lu tes autres sujets pour le savoir. ;)

ce n’est pas qu’il n’y a que la date, c’est que pour certain enregistrement ce sera ’21’, dans un autre ’toto’ et dans un autre ’2017-11-30’ ; il faut donc que je ne reformate que les cas ou c’est ’aaaa-mm-jj’… je vais creuser les expressions régulières

Un truc du genre preg_replace('^([0-9]{4})-([0-9]{2})-([0-9]{2})$', '$3-$2-$1', $details) devrait faire l’affaire ;)

Le premier paramètre est une regex (expression régulière) qui décrit le format de date de départ (aaaa-mm-jj). preg_replace va rechercher ce format dans ta chaîne, il va chercher un "match". S’il trouve ce format, il va faire un remplacement, et ne rien toucher si ça ne correspond pas au format.

Le deuxième paramètre indique par quoi tu veux remplacer ce match. C’est une chaîne de caractères dans laquelle tu peux invoquer des éléments capturés dans la regex. Dans la regex tu as des éléments entre parenthèses, l’année, le mois et le jour, ce sont les parenthèses qui indiquent que tu veux capturer la valeur d’un élément. On les réutilise dans le replacement par leur numéro de gauche à droite en commençant à 1.

Enfin tu donnes la chaîne de caractères sur laquelle tu veux faire tout ce traitement.

Voilà. J’ai pas testé et j’ai pas fait de PHP depuis un bail, je te promets pas de pas avoir fait une coquille, mais c’est le principe quoi. ;)

Détails : http://php.net/manual/fr/function.preg-replace.php

+0 -0

Salut !

En fait, il y a cette entrée dans la FAQ qui pourrait bien être ce que tu cherches en partie.

Si ton format d’entrée reste parmi ceux qui sont reconnus par les objets DateTimeInterface de PHP (et le format ISO que tu mentionnes, AAAA-MM-JJ, en fait forcément partie), ce n’est pas un gros souci pour le changer.
Et au pire, tu as DateTime::createFromFormat qui te permet de passer une chaîne dans un format particulier afin de créer un objet. En revanche, si tu n’as qu’un jour (je ne suis pas sûr de comprendre le cas où que tu n’as que 21, donc je vais le prendre comme ça), il te faudra compléter pour mettre les autres éléments.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte