class Rufus::Scheduler
def self.to_duration(seconds, options={})
from the result
* :drop_seconds, if set to true, seconds and milliseconds will be trimmed
account when building up the result
* :months, if set to true, months (M) of 30 days will be taken into
Options are :
(this behaviour mirrors the one found for parse_time_string()).
Rufus.to_duration_string 0.120 + 30 * 24 * 3600 + 1 # => "4w2d1s120"
Rufus.to_duration_string 7.051 # => "7s51"
Rufus.to_duration_string 0.051 # => "51"
'marker'
If a Float value is passed, milliseconds will be displayed without
(to_time_string is an alias for to_duration_string)
Rufus.to_time_string 30 * 24 * 3600 + 1, true # => "1M1s"
method can be set to true.
For 30 days months to be counted, the second parameter of this
are of variable length). Weeks are counted.
It goes from seconds to the year. Months are not counted (as they
Rufus.to_duration_string 30 * 24 * 3600 + 1 # => "4w2d1s"
Rufus.to_duration_string 7 * 24 * 3600 # => '1w'
Rufus.to_duration_string 3661 # => '1h1m1s'
Rufus.to_duration_string 60 # => '1m'
Rufus.to_duration_string 0 # => '0s'
Turns a number of seconds into a a time string
def self.to_duration(seconds, options={}) h = to_duration_hash(seconds, options) return (options[:drop_seconds] ? '0m' : '0s') if h.empty? s = DU_KEYS.inject('') { |r, key| count = h[key] count = nil if count == 0 r << "#{count}#{key}" if count r } ms = h[:ms] s << ms.to_s if ms s end