<?php 
/** 
 * Smarty shared plugin 
 * 
 * @package    Smarty 
 * @subpackage PluginsShared 
 */ 
 
/** 
 * Function: smarty_make_timestamp<br> 
 * Purpose:  used by other smarty functions to make a timestamp from a string. 
 * 
 * @author   Monte Ohrt <monte at ohrt dot com> 
 * 
 * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime() 
 * 
 * @return int 
 */ 
function smarty_make_timestamp($string) 
{ 
    if (empty($string)) { 
        // use "now": 
        return time(); 
    } elseif ($string instanceof DateTime || 
              (interface_exists('DateTimeInterface', false) && $string instanceof DateTimeInterface) 
    ) { 
        return (int) $string->format('U'); // PHP 5.2 BC 
    } elseif (strlen($string) == 14 && ctype_digit($string)) { 
        // it is mysql timestamp format of YYYYMMDDHHMMSS? 
        return 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)); 
    } elseif (is_numeric($string)) { 
        // it is a numeric string, we handle it as timestamp 
        return (int) $string; 
    } else { 
        // strtotime should handle it 
        $time = strtotime($string); 
        if ($time == - 1 || $time === false) { 
            // strtotime() was not able to parse $string, use "now": 
            return time(); 
        } 
 
        return $time; 
    } 
} 
 
 |