Обычно даты в Smarty всегда передаются как
временные метки (англ. timestamp),
что позволяет проектировщикам шаблонов использовать date_format
для полного контроля над форматированием даты и также делает легким
сравнение дат там, где это необходимо.
Замечание
Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде меток времени Unix (unix timestamps), mysql, или в любом другом виде, который понимает функция strtotime().
Пример 18.4. Использование date_format
{$startDate|date_format}
Результат работы:
Jan 4, 2009
{$startDate|date_format:"%Y/%m/%d"}
Результат работы:
2009/01/04
Даты можно ставнивать в шаблонах путем сравнения меток времени следующим образом:
{if $date1 < $date2} ... делаем что-то полезное ... {/if}
Когда
{html_select_date}
используется в шаблоне, программист наверняка захочет преобразовать
данные из формы назад в формат временной метки. Вот функция, которая
поможет вам сделать это.
Пример 18.5. Преобразование элементов формы ввода даты назад к временной метке
<?php // Предполагается, что ваши элементы формы названы // startDate_Day, startDate_Month, startDate_Year $startDate = makeTimeStamp($startDate_Year, $startDate_Month, $startDate_Day); function makeTimeStamp($year='', $month='', $day='') { if(empty($year)) { $year = strftime('%Y'); } if(empty($month)) { $month = strftime('%m'); } if(empty($day)) { $day = strftime('%d'); } return mktime(0, 0, 0, $month, $day, $year); } ?>
См. также
{html_select_date}
,
{html_select_time}
,
date_format
и
$smarty.now