/** * Take a GMT date and return the formatted string. * * @todo Finish documentation of smarty_function_date * * #### Smarty Parameters * * * date (or unnamed variable) * * format * * assign * * #### Example Usage * * <pre> * {date 1234567890} * </pre> * * @param array $params Associative (and/or indexed) array of smarty parameters passed in from the template * @param Smarty $smarty Parent Smarty template object * * @throws SmartyException * * @return string */ function smarty_function_date($params, $smarty){ if(array_key_exists('date', $params)){ $date = $params['date']; } elseif(isset($params[0])){ $date = $params[0]; } else{ // Use "now" as the time. $date = \Core\Date\DateTime::Now(Time::FORMAT_RFC2822); } if(!$date){ if(DEVELOPMENT_MODE){ return 'Parameter [date] was empty, cowardly refusing to format an empty string.'; } else{ return ''; } } $format = isset($params['format']) ? $params['format'] : \Core\Date\DateTime::RELATIVE; //$timezone = isset($params['timezone']) ? $params['timezone'] : Time::TIMEZONE_GMT; $coredate = new \Core\Date\DateTime($date); if(isset($params['assign']) && $params['assign']){ $smarty->assign($params['assign'], $coredate->format($format)); } else{ return $coredate->format($format); } }