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?
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);
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.
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
pourquoi Huggy il y a %A %d
Regardes tout simplement ici : PHP : strftime » Liste de paramètres.
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?!
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());
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");