ruby-on-rails - 更精确的 distance_of_time_in_words

标签 ruby-on-rails time

distance_of_time_in_words很棒,但有时不够细化。

我需要一个函数来报告精确的时间距离。例如,早上 7 点 50 分到 10 点 10 分应该是“2 小时 20 分钟”的距离,而不是“大约 2 小时”之类的距离 distance_of_time_in_words会做。

我的用例是报告火车时刻表,特别是给定的火车行程需要多长时间。

最佳答案

def distance_of_time_in_hours_and_minutes(from_time, to_time)
  from_time = from_time.to_time if from_time.respond_to?(:to_time)
  to_time = to_time.to_time if to_time.respond_to?(:to_time)
  distance_in_hours   = (((to_time - from_time).abs) / 3600).floor
  distance_in_minutes = ((((to_time - from_time).abs) % 3600) / 60).round

  difference_in_words = ''

  difference_in_words << "#{distance_in_hours} #{distance_in_hours > 1 ? 'hours' : 'hour' } and " if distance_in_hours > 0
  difference_in_words << "#{distance_in_minutes} #{distance_in_minutes == 1 ? 'minute' : 'minutes' }"
end

关于ruby-on-rails - 更精确的 distance_of_time_in_words,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224613/

相关文章:

ruby-on-rails - 如何配置 DATABASE_URL 以将主机名列表添加到 heroku 上的 database.yml?

time - 获取 time.Time 月份的最后一天

linux - 是否有 wait3 的替代方法来在 shell 脚本中获取 usage 结构?

ios - 对于同一应用程序的 iOS 和 Web 客户端,我是否需要在 Spotify 开发者网站上使用两个不同的应用程序?

ruby-on-rails - 在 url_for 中使用过期时的 Amazon S3 无效日期

ruby-on-rails - 如何在 Rails 中使用具有外键约束的数据库中的测试和装置?

unix - 在 unix shell 中具有自动时间的目录

ios - 检测何时是晚上/晚上 - NSDate - iOS

javascript - 计算Javascript中的时差,但仅限于某些时间

sql - 将 Rails 查询更改为纯 SQL