From ab5d8d4e07bb3c8230d0285ef8902ef1979fce51 Mon Sep 17 00:00:00 2001 From: emkael Date: Thu, 18 Oct 2018 02:39:34 +0200 Subject: Updating Smarty --- lib/smarty/plugins/shared.make_timestamp.php | 35 +++++++++++++++++----------- 1 file changed, 21 insertions(+), 14 deletions(-) (limited to 'lib/smarty/plugins/shared.make_timestamp.php') diff --git a/lib/smarty/plugins/shared.make_timestamp.php b/lib/smarty/plugins/shared.make_timestamp.php index 5d7c97e..9626dc6 100644 --- a/lib/smarty/plugins/shared.make_timestamp.php +++ b/lib/smarty/plugins/shared.make_timestamp.php @@ -2,16 +2,17 @@ /** * Smarty shared plugin * - * @package Smarty + * @package Smarty * @subpackage PluginsShared */ - /** - * Function: smarty_make_timestamp
+ * Function: smarty_make_timestamp * Purpose: used by other smarty functions to make a timestamp from a string. * - * @author Monte Ohrt - * @param DateTime|int|string $string date object, timestamp or string that can be converted using strtotime() + * @author Monte Ohrt + * + * @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 +20,30 @@ 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)) { + } 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; + 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; } } - -?> -- cgit v1.2.3