TimeDurationHumanizer

Gem Version Build Status

A Ruby gem for converting seconds into human-readable format.

Installation

Add this line to your application's Gemfile:

gem 'time_duration_humanizer'

And then execute:

$ bundle

Or install it yourself as:

$ gem install time_duration_humanizer

Usage

irb(main):001:0> 12345.to_duration
=> "3 hours, 25 minutes and 45 seconds"

irb(main):002:0> 12345.to_duration(and_at_end: false)
=> "3 hours, 25 minutes, 45 seconds"

irb(main):003:0> 1234567890.to_duration
=> "39 years, 1 month, 14 days, 5 hours, 31 minutes and 30 seconds"

irb(main):004:0> 1234567890.to_duration(weeks: true)
=> "39 years, 1 month, 2 weeks, 5 hours, 31 minutes and 30 seconds"

irb(main):005:0> 62208000.to_duration
=> "1 year, 11 months, 24 days and 18 hours"

irb(main):006:0> 62208000.to_duration(days_in_year: 360)
=> "2 years"

Options

  • and_at_end - default true
  • days_in_year - default 365.25
  • year - default true
  • month - default true
  • week - default false
  • day - default true
  • hour - default true
  • minute - default true
  • second - default true

Localization

In your Rails application edit config/locales/en.yml:

en:
  time_duration_humanizer:
    and: and
    year:
      one: year
      other: years
    month:
      one: month
      other: months
    week:
      one: week
      other: weeks
    day:
      one: day
      other: days
    hour:
      one: hour
      other: hours
    minute:
      one: minute
      other: minutes
    second:
      one: second
      other: seconds

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/digaev/time_duration_humanizer.