Dates

As a rule of thumb, always pass dates to Smarty as timestamps. This allows template designers to use date_format for full control over date formatting, and also makes it easy to compare dates if necessary.

NOTE: As of Smarty 1.4.0, you can pass dates to Smarty as unix timestamps, mysql timestamps, or any date parsable by strtotime().

Example 18-4. using date_format

{$startDate|date_format}



OUTPUT:



Jan 4, 2001





{$startDate|date_format:"%Y/%m/%d"}



OUTPUT:



2001/01/04





{if $date1 < $date2}

	...

{/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 18-5. converting form date elements back to a timestamp

// 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);

}