calendrier et dates au bon format

Afficher le bon format de date à vos visiteurs

Souvent, avec l'utilisation de smarty dans vos tpl sous PrestaShop, vous désirez afficher une date en respectant le format correspondant à la langue utilisée par vos visiteurs en plaçant le mois et le jour comme il faut.

C'est assez simple mes cela demande toujours une recherche car vous ne pratiquez pas ce genre de changement dans votre code tous les matins.

Petit rappel

Il faut dans un premier temps que vous sachiez que cette astuce fonctionne avec le format des dates standard au niveau de vos bases de données, du type ANNEE-MOIS-JOUR. Ce format peut semblé barbare à la première lecture mais il est totalement logique, puisqu’il permet de classer dans le bonne ordre les dates.

Dans notre cas

PrestaShop propose une petite surcharge du moteur Smarty avec la fonction dateFormat qui doit s'utiliser ainsi :

{dateFormat date=$votre_date full=0}

Si $votre_date reçoit la valeur 1975-06-04 cela affichera

en français : 04/06/1975

en anglais : 06/04/1975

Donc le contrat est respecté.

Mais l'option full correspond à quoi ????

Et vous avez raison de me demander cela car elle permet d'afficher l'horaire ou non, ainsi full=0 n'affichera pas l'heure alors que full=1 l'affichera.

Le format est là identique à toutes les langues hh:mm:ss.

Attention, si vous utilisez l'option full=1, pensez bien à le faire avec des dates contenant l'horaire sinon cela retournera toujours 00:00:00.

Bonus

Petit cadeau de fin d'astuce.

Si vous souhaitez afficher la date du jour et donc quelle change tous les jours, c'est mieux. Vous avez smarty qui va vous aider.

$smarty.now|date_format:'%Y-%m-%d'

Ce qui donner quelque chose du style :

{dateFormat date=$smarty.now|date_format:'%Y-%m-%d' full=0}