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); } ?>