summaryrefslogtreecommitdiff
path: root/lib/smarty/plugins/shared.make_timestamp.php
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2018-10-18 02:39:34 +0200
committeremkael <emkael@tlen.pl>2018-10-18 02:39:42 +0200
commitab5d8d4e07bb3c8230d0285ef8902ef1979fce51 (patch)
tree0b955e585cb2fdbc7207392a5f2c97d610b6a5bc /lib/smarty/plugins/shared.make_timestamp.php
parentc055ce2ab60c6582bad3e5babcb1d00384fde78a (diff)
Updating Smarty
Diffstat (limited to 'lib/smarty/plugins/shared.make_timestamp.php')
-rw-r--r--lib/smarty/plugins/shared.make_timestamp.php35
1 files changed, 21 insertions, 14 deletions
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<br>
+ * Function: smarty_make_timestamp
* 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()
+ * @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)
@@ -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;
}
}
-
-?>