Даты

Обычно даты в 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(000$month$day$year);
}
?>

См. также {html_select_date}, {html_select_time}, date_format и $smarty.now