Comment mettre la date en français ? (PDO)

Par JeremDevWeb, il y a 10 ans


Hey les gens, j'ai affiché les données d'une bdd avec PDO mais quand je met $req->date; pour afficher par exemple "13 juillet 2015" il met 13 July 2015 j'ai essayé le str_replace mais j'arrive pas à afficher Juillet ou tout autre mois ! Qui peut m'aider?

9 réponses

Kareylo, il y a 10 ans

Utilise str_replace avec des tableaux.

$monthsEN = array('January', 'February', ...); $monthsFR = array('Janvier', 'Février', ...);

Et ensuite tu fais le str_replace :

$datefr = str_replace($monthsEN, $monthsFR, $date);
Lartak, il y a 10 ans

Tu pourrais par exemple te faire une classe (un Helper), avec ceci à l'intérieur :

public $days = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi','Dimanche']; public $months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']; public function french($datetime) { $tmstamp = strtotime($datetime); $date = $this->days[date('N', $tmstamp)-1]." ".date('d', $tmstamp).' '.$this->months[date('n', $tmstamp)-1].' '.date('Y', $tmstamp); return $date; }

Code effectué par Grafikart.

Huggy, il y a 10 ans

Il faut utiliser la bonne Locale ou récupérer la Locale du système

setlocale(LC_ALL, ""); // prend en compte les parametres systeme date_default_timezone_set("Europe/Paris"); echo strftime("%A %d %B %Y");

mardi 09 juin 2015

JeremDevWeb, il y a 10 ans

Merci pourquoi Huggy il y a %A %d

JeremDevWeb, il y a 10 ans

Je n'arrive pas avec str_replace voici mon code fait avec PDO :

$fr = array('Janvier','Février','Mars','Avril','Mai','Juin','Juillet','Août','Septembre','Octobre','Novembre','Décembre'); $en = array('January','February','March','April','May','June','July','August','September','October','November','Décember'); $datefr = str_replace($en, $fr, $req->date); echo date("j F Y",strtotime($req->date));

Huggy comment je paramètre pour que la date de la variable $req->date soit mise en Locale ? Peut-tu m'aider?!

Huggy, il y a 10 ans

Tu dois rajouter le timestamp en 2em argument de la fonction strftime
la méthode getTimestamp() d'une date renvoie un timestamp

setlocale(LC_ALL, ""); // prend en compte les parametres systeme date_default_timezone_set("Europe/Paris"); .... echo strftime("%A %d %B %Y", $req->date->getTimestamp());
Huggy, il y a 10 ans

Je rajoute que si ton serveur n'est pas configuré en Français, tu peux forcer la locale comme ceci, et uniquement pour les dates et heures.

setlocale(LC_TIME, "fr");
JeremDevWeb, il y a 10 ans

J'ai entré vos aides mais en local(xampp) sa ne veut pas x)