Datas

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().

Exemplo 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.

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