Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

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 :

  • %a - Abréviation du jour de la semaine, selon les paramètres locaux.

  • %A - Nom du jour de la semaine, selon les paramètres locaux.

  • %b - Abréviation du nom du jour, selon les paramètres locaux.

  • %B - Nom complet du mois, selon les paramètres locaux.

  • %c - Préférences d'affichage selon les paramètres locaux.

  • %C - Siècle, (L'année divisée par 100 et tronquée comme un entier, de 00 à 99)

  • %d - Jour du mois, en tant que nombre décimal (de 01 à 31)

  • %D - même chose que %m/%d/%y

  • %e - Jour du mois en tant que nombre décimal. Un chiffre unique est précédé par un espace (de 1 à 31)

  • %g - Position de la semaine dans le siècle [00,99]

  • %G - Position de la semaine, incluant le siècle [0000,9999]

  • %h - identique à %b

  • %H - L'heure en tant que décimale, en utilisant une horloge sur 24 (de 00 à 23)

  • %I - L'heure en tant que décimale en utilisant une horloge sur 12 (de 01 to 12)

  • %j - jour de l'année (de 001 à 366)

  • %k - Heure (horloge sur 24). Les numéros à un chiffre sont précédés d'un espace. (de 0 à 23)

  • %l - Heure (horloge sur 12). Les numéros à un chiffre sont précédés d'un espace. (de 1 à 12)

  • %m - Mois en tant que nombre décimal (de 01 à 12)

  • %M - Minute en tant que nombre décimal

  • %n - Retour chariot (nouvelle ligne).

  • %p - soit am soit pm selon l'heure donnée, ou alors leurs correspondances locales.

  • %r - heure en notation a.m. et p.m.

  • %R - Heure au format 24 heures

  • %S - Secondes en tant que nombre décimal.

  • %t - Caractère tabulation.

  • %T - Heure courante, équivalent à %H:%M:%S

  • %u - Jour de la semaine en tant que nombre décimal [1,7], ou 1 représente le lundi.

  • %U - Le numéro de la semaine en nombre décimal, utilisant le premier dimanche en tant que premier jour de la première semaine.

  • %V - Le numéro de la semaine de l'année courante selon la norme ISO 8601:1988, de 01 à 53, ou la semaine 1 est la première semaine qui dispose au minimum de 4 jours dans l'année courante et ou Lundi est le premier jour de cette semaine.

  • %w - Jour de la semaine en tant que nombre décimal, dimanche étant 0

  • %W - Le numéro de la semaine de l'année courante en tant que nombre décimal, ou Lundi est le premier jour de la première semaine.

  • %x - Représentation préférée de la date selon les paramètres locaux.

  • %X - Représentation préférée de l'heure selon les paramètres locaux, sans la date.

  • %y - L'année en tant que nombre décimal, sans le siècle. (de 00 à 99)

  • %Y - L'année en tant que nombre décimal, avec le siècle.

  • %Z - Zone horraire, nom ou abréviation

  • %% - Un caractère litéral `%'

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

Comments
by PHLanglois on Apr 29, 2013 at 5:49
Take care when using date_format as it relies on your local time configuration. For example, in french, on my local setup, I simply use: setlocale (LC_TIME, 'fr_FR'); But when on a real server (OVH), accents where messed up and I have to use : setlocale (LC_TIME, 'fr_FR.utf8','fra');

Advertisement

Sponsors [info]

Sponsors