Manu-41 Posted October 26, 2018 Share Posted October 26, 2018 Bonjour, dans ma fiche produit j'ai ajouté la date de création de la fiche produit. J'ai donc ceci: {$product->date_add|date_format:'%d %B %Y'|escape:'html':'UTF-8'} au format: 12 janvier 2010 Mais la date ne s'affiche pas quand les produits sont créés au mois d'Aout. J'ai testé avec : {$product->date_add|escape:'html':'UTF-8'} et la date s'affiche bien (mais pas au bon format) Ai-je oublié quelque choses pour ce moi d'Août? merci pour votre aide. presta 1.6 Link to comment Share on other sites More sharing options...
doekia Posted October 26, 2018 Share Posted October 26, 2018 heu... ce ne sont pas les meme ligne: {$product->date_add|date_format:'%d %B %Y'|escape:'html':'UTF-8'} {$product->date_add|escape:'html':'UTF-8'} Link to comment Share on other sites More sharing options...
Manu-41 Posted October 26, 2018 Author Share Posted October 26, 2018 1 minute ago, doekia said: heu... ce ne sont pas les meme ligne: {$product->date_add|date_format:'%d %B %Y'|escape:'html':'UTF-8'} {$product->date_add|escape:'html':'UTF-8'} oui, car les 2 format fonctionne, mais sont différent. le second affiche par exemple: 2018-08-23 21:17:38 (donc un autre format) le {$product->date_add|date_format:'%d %B %Y'|escape:'html':'UTF-8'} fonctionne (dans le format que j'ai besoin) mais la date ne s'affiche pas quand le mois d'août est présent. Je pense que c'est un problème d'accent j'ai cherché ici: https://www.smarty.net/docsv2/fr/language.modifier.date.format.tpl mais aucune info sur l'accent Link to comment Share on other sites More sharing options...
doekia Posted October 26, 2018 Share Posted October 26, 2018 ça ne doit pas bugguer que pour le mois d’août (février?) date_add arrive de la bdd en format YYYY-mm-dd HH:MM:ss, pour afficher des mois en français, tu as donc dû forcer la locale à fr Selon la doc smarty https://www.smarty.net/docs/en/language.modifier.date.format.tpl , seul le format mysql brut (YYYYMMDDHHMMSS) utilise un autre mécanisme, sinon c'est un unixtimestamp ou une chaine formé de month day year analysable par strtotime http://php.net/strtotime (regarde la note sur la désambiguïsation des formats) qui s'affiche ensuite avec strftime http://php.net/strftime Lorsque je teste ce code: <?php $s = '2018-08-23 21:17:38'; setlocale(LC_ALL,'C'); $d = strtotime($s); echo strftime('%d %B %Y',$d).PHP_EOL; setlocale(LC_ALL,'fr_FR'); $d = strtotime($s); echo strftime('%d %B %Y',$d).PHP_EOL; setlocale(LC_ALL,'fr_FR.UTF8'); $d = strtotime($s); echo strftime('%d %B %Y',$d).PHP_EOL; j'obtiens: 23 August 2018 23 ao�t 2018 23 août 2018 Attention l'usage de setlocale() peut mener à de "drôle" en univers mod_php. Et le bon fonctionnement dépend des locales de l'hébergements - tous n'ont pas forcément les locales UTF8 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now