plugins_dir.'shared.make_timestamp.php');
/**
* Smarty phpdate_format modifier plugin
*
* Type: modifier
* Name: date_format
* Purpose: format datestamps via date()
* Input:
* - string: input date string
* - format: strftime format for output
* - default_date: default date if $string is empty
* @link http://smarty.php.net/manual/en/language.modifier.date.format.php
* date_format (Smarty online manual)
* @param string
* @param string
* @param string
* @return string|void
* @uses smarty_make_timestamp()
*/
function smarty_modifier_phpdate_format($string, $format="Y/m/d H:i:s", $default_date=null)
{
/* if (substr(PHP_OS,0,3) == 'WIN') {
$_win_from = array ('%e', '%T', '%D');
$_win_to = array ('%#d', '%H:%M:%S', '%m/%d/%y');
$format = str_replace($_win_from, $_win_to, $format);
}*/
if (substr($format,0,5)=='DATE_'){
switch ($format){
case 'DATE_ATOM': $nformat=DATE_ATOM; break;
case 'DATE_COOKIE': $nformat=DATE_COOKIE; break;
case 'DATE_ISO8601': $nformat=DATE_ISO8601; break;
case 'DATE_RFC822': $nformat="D, d M y H:i:s O"; break; //The php constant is not quite right - as the time-zone comes out with invalid values like "UTC"...
case 'DATE_RFC850': $nformat=DATE_RFC850; break;
case 'DATE_RFC1036': $nformat=DATE_RFC1036; break;
case 'DATE_RFC1123': $nformat=DATE_RFC1123; break;
case 'DATE_RFC2822': $nformat=DATE_RFC2822; break;
case 'DATE_RFC3339': $nformat=DATE_RFC3339; break;
case 'DATE_RSS': $nformat="D, d M Y H:i:s O"; break; //as rfc822 ...
case 'DATE_W3C': $nformat=DATE_W3C; break;
}
} else {
$nformat=$format;
}
if($string != '') {
return date($nformat, smarty_make_timestamp($string));
} elseif (isset($default_date) && $default_date != '') {
return date($nformat, smarty_make_timestamp($default_date));
} else {
return;
}
}
/* vim: set expandtab: */
?>