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 :

Formater une date avec : setPattern - IntlDateFormatter [PHP 5.6]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut Formater une date avec : setPattern - IntlDateFormatter
    Bonjour à tous,

    J'essaie de construire une class pour formater une date de cette manière : Janvier 2016
    Pour le moment je commence à apprendre le PHP et je n'arrive pas trouver la bonne syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $fmt->format(time());
    Je veux remplacer time() par les deux variables qui sont envoyées dans ma variable.
    Et enfin pour la syntaxe du mois j'aurais aimé avoir "Janvier" et non "janvier", donc une majuscule au début.

    J'ai déjà passé 3 soirées pour écrire ces quelques lignes de code, mais là je sèche.....
    Merci d'avance pour le dépannage


    Voici le code en entier :
    d'abord la page php qui appelle la class, puis la class

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    require 'test02.php';
     
    $year = date("Y");
    $month = date("m");
     
    $cal_title = new Title_calendar();
    $cal_title->displayMYdate($month,$year);
     
    var_dump($cal_title);
     
    echo $cal_title->displayMYdate($month,$year);
    LA CLASS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    class Title_calendar {
     
        public $MYdate  ;
     
        public function displayMYdate($m, $a) {
     
            $this->MYdate = date("F-Y",mktime(0,0,0,$m,1,$a));
            $fmt = new IntlDateFormatter('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE);
            $fmt->setPattern('MMMM yyyy');
            return $fmt->format(time());
        }

  2. #2
    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
    Tu peux simplement utiliser ucfirst() pour ta majuscule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function displayMYdate($m, $a) {
     
            $date = new Datetime($a . '-' . $m . '-01');
            $fmt = new IntlDateFormatter('fr_FR', IntlDateFormatter::MEDIUM, IntlDateFormatter::NONE);
            $fmt->setPattern('MMMM yyyy');
            return ucfirst($fmt->format($date));
        }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut
    Merci pour cette réponse hyper rapide.

    J'ai regardé dans la doc php le new datetime. je n'ai pas bien compris (c'est encore un peu trop complexe pour moi)
    Notamment le '01' m'échappe un peu, mais je vais creuser pour avoir plus de détail.

    Petite question supplémentaire : pour éviter d'avoir ce problème d'encodage : Février 2016 ??
    j'ai essayé en mettant 'fr_FR', mais visiblement cela n'a aucun effet.

    Merci encore une fois pour la rapidité de la réponse !

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ebeniste
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ebeniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 33
    Points
    33
    Par défaut
    Bon, chance du débutant pour le problème d'encodage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     return ucfirst( htmlentities($fmt->format($date), ENT_QUOTES, "UTF-8"));
    juste en cherchant sur google "Février problème encodage" et j'ai trouvé l'encodage.

    Problème résolu.

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

Discussions similaires

  1. Réponses: 23
    Dernier message: 26/09/2007, 12h35
  2. Formater une date avec 23:59:59
    Par Caro dans le forum Firebird
    Réponses: 4
    Dernier message: 29/08/2007, 13h06
  3. [Debutant] Afficher une date avec un format short
    Par lilou77 dans le forum BIRT
    Réponses: 12
    Dernier message: 11/01/2007, 09h25
  4. Réponses: 3
    Dernier message: 18/11/2006, 21h44
  5. Parser une date avec un format
    Par titoine1978 dans le forum C++
    Réponses: 15
    Dernier message: 03/04/2006, 11h46

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