| | |
| | | |
| | | |
| | | /** |
| | | * 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 = mktime(); |
| | | switch ($unit) { |
| | | case 'w': |
| | | $amount *= 7; |
| | |
| | | $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; |
| | | } |
| | | |
| | | |