Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-06-2015 17:49:49

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

[Résolu] Traduire la date dans un plugin

Bonjour,

Voilà je me suis crée cette fonction pour formatter les dates qui viennent de la BDD :
Dans le meilleur des mondes mon site aurait été anglophone ça aurait été nickel :

Code:

[lang=php]
public function formatDateAffMois($date)
    {
        if($date != null && $date != "0000-00-00") {
            $myDateTime = \DateTime::createFromFormat('Y-m-d', $date);
            if(is_object($myDateTime)) {
                $date = $myDateTime->format('F Y');         
            }
            return $date;
        }
        elseif($date == "0000-00-00") {
            return null;
        }
    }

Mais j'ai besoin de mon mois en français ... est-ce qu'il y a une méthode prédéfinie ou je vais être obligée de me coller des ereg_replace ?

Merci wink

Dernière modification par amelie (23-06-2015 09:20:24)

Hors ligne

 

#2 09-06-2015 18:42:37

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] Traduire la date dans un plugin

Hello smile

Que passe tu en paramètre de ta fonction?  (2015-06-09?)
Si tu a toujours ce même format tu peu simplement faire un strtotime($date) pour avoir le timestamp et t'amuser avec.

du coup tu peu avoir quelque chose comme ça :

Code:

[lang=php]
public function formatDateAffMois($date){
     //check
     ...
     //end check
      return date('F Y', strtotime($date));
}

pour ton mois en français tu devra passer par ta date locale:

Code:

[lang=php]
    setlocale (LC_TIME, 'fr_FR.utf8','fra');
    return strftime('Y F',strtotime($date));
    //strftime se base sur la localité de la date

Sinon juste pour le principe de chipoter, ereg_replace est déprécié maintenant, il vaudrait mieux passer par preg_replace.

voilou voilou, en espérant t'avoir aidé un petit peu ^^

Dernière modification par flobrflo (09-06-2015 18:43:04)

Hors ligne

 

#3 10-06-2015 08:54:48

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: [Résolu] Traduire la date dans un plugin

Salut,

Hum du coup je ne peux pas couper à la ligne : setlocale (LC_TIME, 'fr_FR.utf8','fra'); ... j'aurais pensé que ça pouvait être défini dans les confs de zend ... y'a pô moyen de le mettre genre dans le boostrap ?

Sinon Flo, juste pour le principe de chipoter le format de la date c'est :

            $date = strftime('%B %Y', strtotime($date));

En fait je savais qu'une des deux méthodes était obsolètes mais comme c'était la fin de la journée bah j'ai eu la flemme de vérifier laquelle ^^.

Aber, danke schön ^^

Dernière modification par amelie (10-06-2015 09:37:22)

Hors ligne

 

#4 10-06-2015 10:52:31

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] Traduire la date dans un plugin

Hello,
il faut toujours chipoter big_smile

Effectivement le setlocale doit être déclaré ailleurs que dans la fonction (le refaire à chaque nouvelle fonction serait très contraignant ^^).
Pour ce qui est du bon endroit, je pense que le mettre dans le "onBootstrap" de ton module d'application est une bonne piste.

Après si tu sais que ton site est uniquement en français, cela relève de la config php du serveur wink

Hors ligne

 

#5 10-06-2015 11:39:13

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: [Résolu] Traduire la date dans un plugin

Salut,

Alors personnellement voici un code qui me sort le mois en français sans que je fasse quelque chose de particulier.

Code:

[lang=php]
$date = new \IntlDateFormatter(
                              $locale,
                              \IntlDateFormatter::SHORT,
                              \IntlDateFormatter::NONE,
                              'Europe/Paris',
                              \IntlDateFormatter::GREGORIAN,
                              'MMMM yyyy'
                            );

Géré par la locale

Et ensuite ne pas oublier de faire

Code:

[lang=php]
 $date->format($datas->getDate())

Et le lien PHP de la classe http://php.net/manual/fr/class.intldateformatter.php


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#6 12-06-2015 15:00:25

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: [Résolu] Traduire la date dans un plugin

J'ai mis les valeurs par défaut en français dans mon intl, donc mon php.ini.
Ce qui est chouette c'est que quad j'implémente des champs "dateselect" j'ai les mois en français qui s'affichent, youhou ! *\o/*
Mais par contre, dans mon cas de figure, ça ne le fait pas :s ... warrum ?

Hors ligne

 

#7 23-06-2015 09:19:56

amelie
Membre
Lieu: Marseille
Date d'inscription: 05-02-2013
Messages: 113
Site web

Re: [Résolu] Traduire la date dans un plugin

Je reviens juste pour poster ça, plus de cassage de tête :

Code:

[lang=php]
public function onBootstrap(MvcEvent $e)
{
    setlocale(LC_TIME, 'fr_FR.utf8','fra');
}

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages