<?php defined('CORE_DIR') || exit('入口错误'); ?>
<?php
/**
 * Type:     modifier
 * Name:     date
 * Purpose:  formats a date given a UNIX timestamp, based on the
 *           PHP "date" function
 * Input:
 *         - string: input date string
 *         - format: date format for output
 *         - default_date: default date if $string is empty
 */
function tpl_modifier_date($string, $format="r", $default_date=null)
{
    if($string != '')
    {
        return date($format, tpl_make_timestamp($string));
    }
    elseif (isset($default_date) && $default_date != '')
    {
        return date($format, tpl_make_timestamp($default_date));
    }
    else
    {
        return;
    }
}

if(!function_exists('tpl_make_timestamp'))
{
    function tpl_make_timestamp($string)
    {
        if(empty($string))
        {
            $string = "now";
        }
        $time = strtotime($string);
        if (is_numeric($time) && $time != -1)
        {
            return $time;
        }

        // is mysql timestamp format of YYYYMMDDHHMMSS?
        if (is_numeric($string) && strlen($string) == 14)
        {
            $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2),substr($string,4,2),substr($string,6,2),substr($string,0,4));
            return $time;
        }

        // couldn't recognize it, try to return a time
        $time = (int) $string;
        if ($time > 0)
        {
            return $time;
        }
        else
        {
            return time();
        }
    }
}
?>