date_format

Форматирует дату согласно указанному формату 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.

Пример 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} и даты.

    Поддержать сайт на родительском проекте КГБ