What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Форматирует дату согласно указанному формату strftime(). Даты могут быть переданы Smarty в виде временных меток unix, временных меток mysql или в виде любой строки, содержащей день, месяц и год, которую может обработать функция strtotime(). Дизайнер могут использовать date_format для получения полного контроля над форматированием даты. Если дата, переданная в date_format, пуста и второй аргумент передан, он будет использоваться в качестве даты для форматирования.
Позиция параметра | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
1 | string | Нет | %b %e, %Y | Это формат для обрабатываемой даты. |
2 | string | Нет | n/a | Это дата по умолчанию, если входящее значение пустое. |
Начиная со Smarty-2.6.10, числовые значения, передаваемые в date_format, всегда рассматриваются как временная метка unix (кроме временных меток mysql, см. ниже).
До Smarty-2.6.10, числовые строки, которые так же могли быть обработаны функцией strtotime() в php (к примеру, "ГГГГММДД"), иногда - в зависимости от конкретной реализации strtotime() - интерпретировались как строки с датой, а не временные метки.
Единственное исключение - это временные метки mysql: Они так же являются числовыми и состоят из 14 символов ("ГГГГММДДЧЧММСС"). Временные метки mysql имеют более высокий приоритет, чем временные метки unix.
Example 5.8. date_format
<?php $config['date'] = '%I:%M %p'; $config['time'] = '%H:%M:%S'; $smarty->assign('config',$config); $smarty->assign('yesterday', strtotime('-1 day')); ?>
Шаблон (использует $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}
Результат обработки:
Feb 6, 2001 02/06/01 02:33 pm Feb 5, 2001 Monday, February 5, 2001 14:33:00
Конверсионные указатели date_format:
%a - сокращенное название дня недели, в зависимости от текущей локали
%A - полное название дня недели, в зависимости от текущей локали
%b - сокращенное название месяца, в зависимости от текущей локали
%B - полное название месяца, в зависимости от текущей локали
%c - формат даты и времени по умолчанию для текущей локали
%C - номер века (год, деленный на 100, представленный в виде целого в промежутке от 00 до 99)
%d - день месяца в десятичном формате (от 01 до 31)
%D - синоним %m/%d/%y
%e - день месяца в десятичном формате без ведущего нуля (от 1 до 31)
%g - Week-based year within century [00,99]
%G - Week-based year, including the century [0000,9999]
%h - синоним %b
%H - часы по 24-часовым часам (от 00 до 23)
%I - часы по 12-часовым часам (от 01 до 12)
%j - день года (от 001 до 366)
%k - часы по 24-часовым часам без ведущего нуля (от 0 до 23)
%l - часы по 12-часовым часам без ведущего нуля (от 1 до 12)
%m - номер месяца (от 01 до 12)
%M - минуты
%n - символ новой строки
%p - `am' или `pm', в зависимости от заданного формата времени и текущей локали.
%r - time in a.m. and p.m. notation
%R - time in 24 hour notation
%S - секунды
%t - символ табуляции
%T - время в формате %H:%M:%S
%u - номер дня недели [1,7], где 1-ый день - понедельник
%U - номер недели в году, считая первое воскресенья года первым днем первой недели
%V - номер недели в году (по ISO 8601:1988) в диапазоне от 01 до 53, где первая неделя та, у которой хотя бы 4 дня находятся в данном году. Понедельник считается первым днем недели.
%w - номер дня недели, где 0 - воскресенье
%W - номер недели в году, считаю первый понедельник первым днем первой недели.
%x - предпочтительное представление даты для текущих настроек locale без времени
%X - предпочтительное представление времени для текущих настроек locale без даты
%y - год в виде десятичного числа без века (от 00 до 99)
%Y - год в виде десятичного числа включая век
%Z - часовой пояс или имя или сокращение
%% - буквальный символ `%'
date_format является обычной оберткой для функции PHP strftime(). Вы можете располагать больш или меньшим количеством доступных конверсионных указателей в зависимости от функции strftime() той системы, где был скомпилирован PHP. Обратитесь к руководству вашей системы для получения полного списка доступных указателей.
См. также $smarty.now, функция php strftime(), {html_select_date} и даты.