date_format

Formate une date / heure au format strftime() donné. Les dates peuvent être passées à smarty en tant que timestamp unix, timestamp mysql ou comme chaîne quelconque contenant mois jour année (interprétable par strtotime()). Les concepteurs de templates peuvent utiliser date_format pour contrôler parfaitement le format de sortie de la date. Si la date passée à date_format est vide, et qu'un second paramètre est donné, ce dernier sera utilisé comme étant la date à formater.

Position du paramètre Type Requis Défaut Description
1 chaîne de caractères Non %b %e, %Y Format de sortie de la date.
2 chaîne de caractères Non n/a Date par défaut si aucune n'est spécifiée en entrée.

Note

Depuis Smarty 2.6.10, les valeurs numériques passées à date_format sont toujours (excepté pour les timestamps mysql, voir ci-dessous) interprétées comme un timestamp Unix.

Avant la version 2.6.10 de Smarty, les chaînes numériques qui étaient également analysables par strtotime() en PHP (comme YYYYMMDD), étaient, parfois, dépendament de l'implémentation de strtotime(), interprétées en tant que des chaînes date et NON des timestamps.

La seule exception est les timestamps MySQL : Ils sont uniquement numériques et d'une longueur de 14 caractères (YYYYMMDDHHMMSS). Les timestamps MySQL ont la priorité sur les timestamps Unix.

Note pour les développeurs

date_format est essentiellement un gestionnaire pour la fonction PHP strftime(). Vous pourriez avoir plus ou moins d'options disponibles suivant le système sur lequel la fonction PHP strftime() a été compilé. Vérifiez la documentation pour votre système pour avoir une liste complète des options disponibles.

Example 5.8. date_format


<?php

$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty->assign('config',$config);
$smarty->assign('hier', strtotime('-1 day'));

?>

   

Où le template est (utilisation de $smarty.now) :


{$smarty.now|date_format}
{$smarty.now|date_format:"%D"}
{$smarty.now|date_format:$config.date}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:$config.time}

   

Affichera :


Jan 1, 2022
02/06/01
02:33 pm
Dec 31, 2021
Monday, December 1, 2021
14:33:00

   

Conversion de date_format :

Voir aussi $smarty.now, strftime(), {html_select_date} et les astuces sur les dates.