IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

DATE/Heure en toute lettres..


Sujet :

MySQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut DATE/Heure en toute lettres..
    Bonjour,
    J'ai réussi à avoir la date sur mes commentaires de la façon : "Le 10-03-2018 à 11H11"
    Comment est il possible de retourner la date de la façon : "Le 10 Mars 2018 à 11H11" ?
    J'ai pourtant fait plein de recherche mais à chaque fois ça ne correspond pas à ma demande... à chaque fois c'est pour retourner la date et l'heure actuelle, mais jamais la date antérieure (celle d'un commentaire pour mon cas)
    Sachant que ma date dans ma BDD est dans une colonne "time" au format : timestamp / on update CURRENT_TIMESTAMP / CURRENT_TIMESTAMP / ON UPDATE CURRENT_TIMESTAMP

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php 
            $bdd = new PDO('mysql:host=*****;dbname=******','******','******');
            $allmsg = $bdd->query('SELECT name, email, message, date_format(time, "%d-%m-%Y à %H:%i") as time FROM chat ORDER BY id DESC  ');		
            while($msg = $allmsg->fetch())
            {
     ?>
    <?php echo $msg['name']; ?>
    <?php echo $msg['message']; ?>
     
    Le <?php echo $msg['time']; ?><br>
    Cordialement.

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Normalement

    Partie php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setlocale(LC_TIME, "fr_FR");
    Partie sql à adapter ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MONTHNAME('2008-02-03')
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut
    Bonjour, et merci de votre réponse.

    Alors je ne comprend pas trop comment utiliser ça pour ce que je veux ?
    Par exemple, si je fais un test dans ma base de donnée dans l'onglet SQL en faisant juste un SELECT MONTHNAME('2009-03-18'); et bien ça me retourne bien "Mars", le truc c'est que je ne sais pas vraiment comment l'utiliser, et surtout, moi ce que je veux c'est que ça retourne n'importe quelle date des commentaires et pas cette date en particulier que j'ai donné dans mon premier message....
    Mais là je ne sais pas trop comment faire

  4. #4
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Alors en regardant de plus près

    1)
    Essayer ceci %m changé en %M ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    $bdd = new PDO('mysql:host=*****;dbname=******','******','******');
    $allmsg = $bdd->query('SELECT name, email, message, date_format(time, "%d-%M-%Y à %H:%i") as time FROM chat ORDER BY id DESC  ');	
    ...
    Puis ceci ... écrire ce mois en français ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    setlocale(LC_TIME, "fr_FR");
    $bdd = new PDO('mysql:host=*****;dbname=******','******','******');
    $allmsg = $bdd->query('SELECT name, email, message, date_format(time, "%d-%M-%Y à %H:%i") as time FROM chat ORDER BY id DESC  ');	
    ...
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut
    Hmmm et bien justement je suis allé voir sur le PHP Manual pour dates , il disait ça justement.... le %M à la place de ce que j'avais, il met bien le mois en toute lettre, mais pas en francais... le set locale n'a pas l'air de fonctionner

  6. #6
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setlocale(LC_TIME, 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8');
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  7. #7
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    --------------
    set lc_time_names = 'en_US'
    --------------
     
    --------------
    select date_format(now(), 'le %W %d %M %Y, il est %k:%i:%s')
    --------------
     
    +-------------------------------------------------------+
    | date_format(now(), 'le %W %d %M %Y, il est %k:%i:%s') |
    +-------------------------------------------------------+
    | le Saturday 10 March 2018, il est 19:10:38            |
    +-------------------------------------------------------+
    --------------
    set lc_time_names = 'fr_FR'
    --------------
     
    --------------
    select date_format(now(), 'le %W %d %M %Y, il est %k:%i:%s')
    --------------
     
    +-------------------------------------------------------+
    | date_format(now(), 'le %W %d %M %Y, il est %k:%i:%s') |
    +-------------------------------------------------------+
    | le samedi 10 mars 2018, il est 19:10:38               |
    +-------------------------------------------------------+
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut
    Bonjour et merci de vos réponses.

    vttfman: ne marche pas, il retourne toujours le mois en "March" :/

    Artemus24: ne marche pas non plus .... il ne reconnait pas la commande set lc_time_names = 'fr_FR'

  9. #9
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Bonjour à tous,
    Lire ce lien ... et vérifier sous phpmyadmin
    =<
    https://dev.mysql.com/doc/refman/5.5...e-support.html

    Sinon taper "Format date francais, sortir les mois en toutes lettres avec mysql" sous Goo*gle et prendre le 1er article,
    ou comment quand ça ne passe pas à droite ... prendre par la gauche ...
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  10. #10
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Avant de dire que cela ne fonctionne pas, il nous faudrait connaitre :
    --> la version MySql que vous utilisez ?
    --> comment avez-vous procédez pour tester mon exemple ?

    Sinon, placez ci-après dans votre fichier "my.ini", dans la section de votre service "wampmysqld" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lc-messages   = fr_FR
    lc-time-names = fr_FR
    Ne pas oubliez de redémarrer wampserver !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut
    Bonjour !

    C'est bon j'ai réussi, merci à vous deux, je ne savais pas que je pouvais mettre deux 2 requètes à la suite.

    Il y avait aussi un problème d'accents au niveau des mois, j'ai du rajouter au dessus de ma connexion à la BDD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$options = array(
    	 PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
    	);
    Et la plus aucun soucis.

    du coup ça donne ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php 
    		$options = array(
    		  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
    		);
            $bdd = new PDO('mysql:host=localhost;dbname=tuto-admin','root','', $options);
            $allmsg = $bdd->query("SET lc_time_names = 'fr_FR'");
            $allmsg = $bdd->query('SELECT name, message, DATE_FORMAT(time, "%d %M %Y") as time FROM commentaires');	
            while($msg = $allmsg->fetch())
            {
     ?>
    <?php echo $msg['name']; ?>
     
    <br>
     
    Le <?php echo $msg['time']; ?><br>
     
    <?php echo '-------' ?><br>
     
    <?php echo $msg['message']; ?><br><br>
     
    <?php 
    }
    ?>
    Bon par contre, ça marche niquel en local , je n'ai pas eu besoin de modifier les configs de Xampp, par contre, j'ai essayé exactement la même chose sur mon site en ligne, ça met bien les accents des mois en francais, par contre, il ne prend pas les accents de mes messages qu'il y a en dessous, une idée ? :-/

  12. #12
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Essayer d'utiliser LC_ALL ...

    LC_ALL pour toutes les constantes suivantes
    LC_COLLATE pour la comparaison de chaînes de caractères. Voir strcoll()
    LC_CTYPE pour la classification et la conversion de caractères. Voir strtoupper()
    LC_MONETARY pour localeconv()
    LC_NUMERIC pour le séparateur décimal. Voir localeconv()
    LC_TIME pour le format de date et d'heure avec strftime()
    LC_MESSAGES pour les réponses système (disponible si PHP a été compilé avec libintl)
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2017
    Messages : 78
    Points : 36
    Points
    36
    Par défaut
    Bonsoir !

    Et bien j'ai réussi au final.... ça venait de la base de donnnée a priori... j'ai créer une nouvelle BDD et ça marche niquel.... je passe en résolu !
    Et merci de votre aide !
    Voici mon code final:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php 
    		$options = array(
    		  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    		  PDO::MYSQL_ATTR_INIT_COMMAND => "SET lc_time_names = 'fr_FR'",
    		  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    		);
       	    $bdd = new PDO('mysql:host=****;dbname=****;','****','****', $options);
    		$allmsg = $bdd->query("SET NAMES utf8");
            $allmsg = $bdd->query('SELECT name, email, message, DATE_FORMAT(time, "%d %M %Y à %HH%i") as time FROM commentaires ORDER BY id DESC'); 
            while($msg = $allmsg->fetch())
            {
     ?>
     
     
    <?php echo $msg['name']; ?><br>
     
    Le <?php echo $msg['time']; ?><br>
     
    <?php echo $msg['message']; ?>
     
    <?php 
    }
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Date et heure actualisé toute les secondes
    Par lasrevinu dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/02/2010, 15h35
  2. Date de type unix_time_stamp à son format en toute lettre francophone
    Par marty499 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/06/2008, 17h18
  3. date en toute lettre
    Par oclim dans le forum VBA Word
    Réponses: 6
    Dernier message: 23/02/2008, 13h05
  4. [VBA] Date anglaise en toute lettre
    Par Ofsco dans le forum Word
    Réponses: 17
    Dernier message: 21/02/2008, 13h44
  5. [Dates] Obtenir la date de demain en toutes lettres
    Par lunick dans le forum Langage
    Réponses: 15
    Dernier message: 23/07/2007, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo