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
,