Форматирует дату согласно указанному формату strftime(). Даты могут быть переданы Smarty в виде временных меток unix, временных меток mysql или в виде любой строки, содержащей день, месяц и год, которую может обработать функция strtotime(). Дизайнер могут использовать date_format для получения полного контроля над форматированием даты. Если дата, переданная в date_format, пуста и второй аргумент передан, он будет использоваться в качестве даты для форматирования.
Позиция параметра | Тип | Обязателен | По умолчанию | Описание |
---|---|---|---|---|
1 | string | Нет | %b %e, %Y | Это формат для обрабатываемой даты. |
2 | string | Нет | n/a | Это дата по умолчанию, если входящее значение пустое. |
Note
Начиная со 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} и даты.