Em geral, sempre envie datas ao Smarty no formato timestamp. Deste modo o desginer do template pode usar o modificador date_format para ter um controle total sobre a formatação da data, e também facilita a comparação de datas se necessário.
Nota: No Smarty 1.4.0, você pode enviar datas ao Smarty no formato unix timestamp, mysql timestamp, ou qualer outra data que possa ser lida pela função strtotime().
Example 18.4. usando date_format
{$startDate|date_format}
Irá mostrar:
Jan 4, 2001
{$startDate|date_format:"%Y/%m/%d"}
Irá mostrar:
2001/01/04
{if $data1 < $data2}
...
{/if}
Quando se está usando {html_select_date} em um template, o programador normalmente vai querer converter a saída de um formulário de volta para o formato timestamp. Abaixo está uma função que irá ajudá-lo à fazer isto.
Example 18.5. Convertendo datas de volta ao formato timestamp
<?php
// presume-se que os elementos de seu formulário são chamados de
// 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);
}
?>
