<?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) { return $string->getTimestamp(); } 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; } }