As a rule of thumb, always pass dates to Smarty as
    timestamps. This
    allows template designers to use the date_format
     modifier for full control over date formatting, and also makes it
    easy to compare dates if necessary.
   
Example 21.4. Using date_format
{$startDate|date_format}
    
This will output:
Jan 4, 2009
    
{$startDate|date_format:"%Y/%m/%d"}
    
This will output:
2009/01/04
    
Dates can be compared in the template by timestamps with:
{if $order_date < $invoice_date}
   ...do something..
{/if}
    
    When using 
    {html_select_date} in a template, the programmer
    will most likely want to convert the output from the form back into
     timestamp format. Here is a function to help you with that.
   
Example 21.5. Converting form date elements back to a timestamp
<?php
// this assumes your form elements are named
// 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);
}
?>
    
   See also
   
   {html_select_date},
   
   {html_select_time},
   
   date_format
   and 
   $smarty.now,