ruby-on-rails - 在 ruby​​ 假时间中四舍五入到最接近的半小时或小时?

标签 ruby-on-rails ruby time

我在我的 UI 中使用假时间来显示。我正在像这样随机地操纵时间。

  date: Time.zone.now - (i % 9).days - rand(3).days - rand(2).hours + rand(60).minutes

但是我想四舍五入到最接近的时间,即下午 3.35 变为 3.30

你知道我该怎么做吗?

最佳答案

你可以用这个方法扩展时间类 我通常在 lib/core_ext 目录中执行此操作

# lib/core_ext/time.rb
class Time
  def round_off(seconds = 60)
    Time.at((self.to_f / seconds).round * seconds)
  end
end

现在你可以做类似的事情了

time = Time.zone.now - rand(3).days - rand(2).hours + rand(60).minutes
time.round_off(30.minutes)

希望对你有帮助

关于ruby-on-rails - 在 ruby​​ 假时间中四舍五入到最接近的半小时或小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46610599/

相关文章:

ruby-on-rails - 向我的 oauth 提供商发出发布请求时出现 invalid_grant 错误

ruby-on-rails - Rails URL 中的标记链

javascript - setTimeout的实际延迟可能会更短吗?

c - 从 C 中的时间和日期字符串值中获取毫秒差

button - 快速按下时禁用按钮 90 秒

ruby-on-rails - heroku rails 应用程序域仅在没有 www 的情况下工作

javascript - 带有 backbone.js 的 D3-cloud

ruby-on-rails - 使用 ruby​​ on Rails 进行定时服务器事件

ruby-on-rails - 如何在 Cucumber/Capybara 中设置浏览器语言?

ruby-on-rails - 我的第一个 Ruby on Rails 程序报错