Flowdock
distance_of_time_in_words(from_time, to_time = 0, include_seconds = false) public

Reports the approximate distance in time between two Time or Date objects or integers as seconds. Set include_seconds to true if you want more detailed approximations when distance < 1 min, 29 secs Distances are reported base on the following table:

0 <-> 29 secs # => less than a minute 30 secs <-> 1 min, 29 secs # => 1 minute 1 min, 30 secs <-> 44 mins, 29 secs # => [2..44] minutes 44 mins, 30 secs <-> 89 mins, 29 secs # => about 1 hour 89 mins, 29 secs <-> 23 hrs, 59 mins, 29 secs # => about [2..24] hours 23 hrs, 59 mins, 29 secs <-> 47 hrs, 59 mins, 29 secs # => 1 day 47 hrs, 59 mins, 29 secs <-> 29 days, 23 hrs, 59 mins, 29 secs # => [2..29] days 29 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs # => about 1 month 59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 31 secs # => [2..12] months 1 yr minus 30 secs <-> 2 yrs minus 31 secs # => about 1 year 2 yrs minus 30 secs <-> max time or date # => over [2..X] years

With include_seconds = true and the difference < 1 minute 29 seconds 0-4 secs # => less than 5 seconds 5-9 secs # => less than 10 seconds 10-19 secs # => less than 20 seconds 20-39 secs # => half a minute 40-59 secs # => less than a minute 60-89 secs # => 1 minute

Examples:

  from_time = Time.now
  distance_of_time_in_words(from_time, from_time + 50.minutes) # => about 1 hour
  distance_of_time_in_words(from_time, from_time + 15.seconds) # => less than a minute
  distance_of_time_in_words(from_time, from_time + 15.seconds, true) # => less than 20 seconds

Note: Rails calculates one year as 365.25 days.

Show source
Register or log in to add new notes.
September 27, 2010
0 thanks

Nice german translation independet of structure of a sentence

Eine pragmatische Lösung für das Übersetzungsproblem der Rails Methode distance_of_time_in_words(). Im Deutschen wird je nach Satzbau eine andere Ausgabe benötigt.

Vor mehr als 5 Monaten“/”Vor etwa einem Jahr“ — statt wie im Original ”Dauer: mehr als 5 Monate“/”Dauer: etwa 1 Jahr

http://gist.github.com/598965