diff options
Diffstat (limited to 'program/include/rcube_shared.inc')
-rw-r--r-- | program/include/rcube_shared.inc | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc index b3911659e..176a46281 100644 --- a/program/include/rcube_shared.inc +++ b/program/include/rcube_shared.inc @@ -146,25 +146,23 @@ function clear_directory($dir_path) /** - * Create a unix timestamp with a specified offset from now. + * Returns number of seconds for a specified offset string. * - * @param string $offset_str String representation of the offset (e.g. 20min, 5h, 2days) - * @param int $factor Factor to multiply with the offset + * @param string $str String representation of the offset (e.g. 20min, 5h, 2days, 1week) * - * @return int Unix timestamp + * @return int Number of seconds */ -function get_offset_time($offset_str, $factor=1) +function get_offset_sec($str) { - if (preg_match('/^([0-9]+)\s*([smhdw])/i', $offset_str, $regs)) { - $amount = (int)$regs[1]; + if (preg_match('/^([0-9]+)\s*([smhdw])/i', $str, $regs)) { + $amount = (int) $regs[1]; $unit = strtolower($regs[2]); } else { - $amount = (int)$offset_str; + $amount = (int) $str; $unit = 's'; } - $ts = time(); switch ($unit) { case 'w': $amount *= 7; @@ -174,11 +172,23 @@ function get_offset_time($offset_str, $factor=1) $amount *= 60; case 'm': $amount *= 60; - case 's': - $ts += $amount * $factor; } - return $ts; + return $amount; +} + + +/** + * Create a unix timestamp with a specified offset from now. + * + * @param string $offset_str String representation of the offset (e.g. 20min, 5h, 2days) + * @param int $factor Factor to multiply with the offset + * + * @return int Unix timestamp + */ +function get_offset_time($offset_str, $factor=1) +{ + return time() + get_offset_sec($offset_str) * $factor; } |