Обычно даты в Smarty всегда передаются как
временные метки (англ. timestamp),
что позволяет проектировщикам шаблонов использовать date_format
для полного контроля над форматированием даты и также делает легким
сравнение дат там, где это необходимо.
Note
Начиная с версии Smarty 1.4.0, вы можете передавать даты в Smarty в виде меток времени Unix (unix timestamps), mysql, или в любом другом виде, который понимает функция strtotime().
Example 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}
используется в шаблоне, программист наверняка захочет преобразовать
данные из формы назад в формат временной метки. Вот функция, которая
поможет вам сделать это.
Example 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