diff options
Diffstat (limited to '')
-rw-r--r-- | include/smarty/libs/plugins/shared.make_timestamp.php | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/include/smarty/libs/plugins/shared.make_timestamp.php b/include/smarty/libs/plugins/shared.make_timestamp.php index 5d7c97e91..f87d40c7e 100644 --- a/include/smarty/libs/plugins/shared.make_timestamp.php +++ b/include/smarty/libs/plugins/shared.make_timestamp.php @@ -2,7 +2,7 @@ /** * Smarty shared plugin * - * @package Smarty + * @package Smarty * @subpackage PluginsShared */ @@ -11,7 +11,9 @@ * 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() + * + * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime() + * * @return int */ function smarty_make_timestamp($string) @@ -19,24 +21,23 @@ function smarty_make_timestamp($string) if (empty($string)) { // use "now": return time(); - } elseif ($string instanceof DateTime) { - return $string->getTimestamp(); + } 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)); + 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) { + if ($time == - 1 || $time === false) { // strtotime() was not able to parse $string, use "now": return time(); } + return $time; } } - -?> |