add DateTime support, clean up some logic

This commit is contained in:
monte.ohrt
2010-07-13 22:57:47 +00:00
parent db38a0aaec
commit 50637fccdd

View File

@@ -18,26 +18,24 @@ function smarty_make_timestamp($string)
{ {
if(empty($string)) { if(empty($string)) {
// use "now": // use "now":
$time = time(); return time();
} elseif (is_a($string,'DateTime')) {
return $string->getTimestamp();
} elseif (preg_match('/^\d{14}$/', $string)) { } elseif (preg_match('/^\d{14}$/', $string)) {
// it is mysql timestamp format of YYYYMMDDHHMMSS? // it is mysql timestamp format of YYYYMMDDHHMMSS?
$time = mktime(substr($string, 8, 2),substr($string, 10, 2),substr($string, 12, 2), 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)); substr($string, 4, 2),substr($string, 6, 2),substr($string, 0, 4));
} elseif (is_numeric($string)) { } elseif (is_numeric($string)) {
// it is a numeric string, we handle it as timestamp // it is a numeric string, we handle it as timestamp
$time = (int)$string; return (int)$string;
} else { } else {
// strtotime should handle it // strtotime should handle it
$time = strtotime($string); $time = strtotime($string);
if ($time == -1 || $time === false) { if ($time == -1 || $time === false) {
// strtotime() was not able to parse $string, use "now": // strtotime() was not able to parse $string, use "now":
$time = time(); return time();
} }
return $time;
} }
return $time;
} }
?> ?>