From 51609351f2c4b5082b7e6f0744cd3811c325303f Mon Sep 17 00:00:00 2001 From: emkael Date: Tue, 11 Oct 2016 14:01:29 +0200 Subject: * initial template --- lib/smarty/plugins/shared.make_timestamp.php | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 lib/smarty/plugins/shared.make_timestamp.php (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 new file mode 100644 index 0000000..5d7c97e --- /dev/null +++ b/lib/smarty/plugins/shared.make_timestamp.php @@ -0,0 +1,42 @@ + + * 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() + * @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; + } +} + +?> -- cgit v1.2.3