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

Langage PHP Discussion :

Mettre le mois d'une date en lettre


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut Mettre le mois d'une date en lettre
    Bonjour,

    Je récupère une date dans ma base que je convertir au format français et je souhaiterai mettre le mois en lettre.
    J'ai donc essayer ceci m'ai rien y fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strftime('%A %m %B', strtotime($row2['date']))

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    C'est possible en jouant avec setlocale() mais ce n'est pas un résultat garanti.

    La meilleure solution : se faire une fonction, c'est pas long y aura toujours jamais que 12 mois dans une année.

    Un exemple :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    //En passant une date en paramètre comprise par la fonction strtotime
    public function mois($date = null) {
    	$numMois = date('m', strtotime($date));
    	switch ($numMois) {
    	    case 1:
    		$mois = "Janvier";
    		break;
    	    case 2:
    		$mois = "Février";
    		break;
    	    case 3:
    		$mois = "Mars";
    		break;
    	    case 4:
    		$mois = "Avril";
    		break;
    	    case 5:
    		$mois = "Mai";
    		break;
    	    case 6:
    		$mois = "Juin";
    		break;
    	    case 7:
    		$mois = "Juillet";
    		break;
    	    case 8:
    		$mois = "Août";
    		break;
    	    case 9:
    		$mois = "Septembre";
    		break;
    	    case 10:
    		$mois = "Octobre";
    		break;
    	    case 11:
    		$mois = "Novembre";
    		break;
    	    case 12:
    		$mois = "Décembre";
    		break;
    	    default:
    		return false;
    	}
    	 return $mois;
     
    }
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    setlocale(LC_ALL, 'fr_FR', 'fra_FRA');
    echo strftime('%A %m %B', strtotime($row2['date']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Sabotage, sa m'affiche pas la bonne date par rapport à ma bdd
    dans ma bdd, je suis en annnée - mois - jours

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai deux fonctions, comment je pourrais faire car l'a pour convertir ma date en français, j'appeler la première. Il faudrait en plus que je puisse mettre le mois en lettre
    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
    function convertirDateAnglaisVersFrancais($date){
      @list($annee,$mois,$jour) = explode('-',$date);
     
      if($date == ""){
        return "00-00-0000";
      }else{
        return date("d/m/Y", mktime(0, 0, 0, $mois, $jour, $annee));
      }
    }
     
    function obtenirLibelleMois($mois) {
    switch($mois) {
        case '01': $mois = 'Janvier'; break;
        case '02': $mois = 'Février'; break;
        case '03': $mois = 'Mars'; break;
        case '04': $mois = 'Avril'; break;
        case '05': $mois = 'Mai'; break;
        case '06': $mois = 'Juin'; break;
        case '07': $mois = 'Juillet'; break;
        case '08': $mois = 'Août'; break;
        case '09': $mois = 'Septembre'; break;
        case '10': $mois = 'Octobre'; break;
        case '11': $mois = 'Novembre'; break;
        case '12': $mois = 'Decembre'; break;
        default: $mois =''; break;
      }
      return $mois;
    }

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Pourquoi ne pas utiliser la base de données pour faire ce travail ?

    Dans la BDD il faut utiliser des colonnes au format DATE ou DATETIME pour bénéficier des fonctions sur les dates de MySQL (ou autre SGDB en fonction de celui que tu utilise).

    Regarde les fonctions STR_TO_DATE et DATE_FORMAT de MySQL je pense qu'elle feront ton bonheur
    une réponse vous a permis d'avancer ?

  7. #7
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Avec le mois en lettre en français, c'est possible ça en MySQL ? Si tel est le cas ça m'intéresse !
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Je suis au format Date dans ma base.
    Je vois faire comment pour afficher au format jours mois en lettre année en php?
    Je doit mettre quoi dans ma requete selecT?

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Pour moi en anglais il n'y a pas de problème

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATE_FORMAT(monchampdate, '%W %M %Y');

    En français par contre...
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai réussi à faire la requête mais après pour convertir en français...

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai cette fonction pour les mois mais comment je pourrais la mettre dans ma requête.
    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
    29
    30
    function obtenirLibelleMois($mois) {
    switch($mois) {
        case '01': $mois = 'Janvier'; break;
        case '02': $mois = 'Février'; break;
        case '03': $mois = 'Mars'; break;
        case '04': $mois = 'Avril'; break;
        case '05': $mois = 'Mai'; break;
        case '06': $mois = 'Juin'; break;
        case '07': $mois = 'Juillet'; break;
        case '08': $mois = 'Août'; break;
        case '09': $mois = 'Septembre'; break;
        case '10': $mois = 'Octobre'; break;
        case '11': $mois = 'Novembre'; break;
        case '12': $mois = 'Decembre'; break;
        case 'January': $mois = 'Janvier'; break;
        case 'February': $mois = 'Février'; break;
        case 'March': $mois = 'Mars'; break;
        case 'April': $mois = 'Avril'; break;
        case 'May': $mois = 'Mai'; break;
        case 'June': $mois = 'Juin'; break;
        case 'July': $mois = 'Juillet'; break;
        case 'August': $mois = 'Août'; break;
        case 'September': $mois = 'Septembre'; break;
        case 'October': $mois = 'Octobre'; break;
        case 'November': $mois = 'Novembre'; break;
        case 'December': $mois = 'Decembre'; break;
        default: $mois =''; break;
      }
      return $mois;
    }

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Mysql ne donne pas de dates localisées.

    Sabotage, sa m'affiche pas la bonne date par rapport à ma bdd
    dans ma bdd, je suis en annnée - mois - jours
    Quelle résultat obtiens-tu avec quelle date ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Là j'ai réussi à metter sa dans ma requête pour avoir le mois en lettre mais le problème c'est en anglais. Je souhaiterait l'avoir en français.
    DATE_FORMAT(date,'%d %M %Y') As date

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Mysql ne donne pas de dates localisées.

    Sabotage, sa m'affiche pas la bonne date par rapport à ma bdd
    dans ma bdd, je suis en annnée - mois - jours
    Quelle résultat obtiens-tu avec quelle date ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai tout le temps jeudi 01 janvier

    Alors que la méthode que je t'affiche plus haut fonctionne sauf que mes mois sont en anglais et c'est pour cela que j'ai créer une fonction pour mettre les mois en anglais sauf que je ne vois pas comment appeler ma fonction dans la requête

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est ton $row2['date'] qui n'est pas bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setlocale(LC_ALL, 'fr_FR', 'fra_FRA');
    echo strftime('%A %m %B', strtotime('2014-03-06'));
    // jeudi 3 mars
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Pourtant quand je fait un select sa m'affiche bien en année - mois - jours
    2014-03-05

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    setlocale(LC_ALL, 'fr_FR', 'fra_FRA');
    echo '<p>en dur : ' . strftime('%A %m %B', strtotime('2014-03-05')) . '</p>';
    echo '<p>row : ' . strftime('%A %m %B', strtotime($row2['date'])) . '</p>';
    var_dump($row2['date']);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Affiche le mois d'une date en lettre
    Par Bois990 dans le forum Configuration
    Réponses: 6
    Dernier message: 17/02/2015, 14h50
  2. [LG] Extraire le mois dans une date en PASCAL
    Par JPCOCU dans le forum Langage
    Réponses: 1
    Dernier message: 03/10/2005, 15h40
  3. Obtenir le 1er jour du mois d'une date
    Par soso78 dans le forum Access
    Réponses: 4
    Dernier message: 27/09/2005, 12h15
  4. [IB6] tester le mois d'une date
    Par qi130 dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2005, 15h00
  5. [Requête] Modifier l'année et le mois d'une date
    Par brazza dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/01/2005, 17h19

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