gpt4 book ai didi

ruby-on-rails - 在两个日期时间之间迭代,步长为一小时

转载 作者:数据小太阳 更新时间:2023-10-29 06:25:04 26 4
gpt4 key购买 nike

我正在寻找一种有效的方法,在 Ruby 1.9.x/Rails 3.2.x 中,以一个小时的步长在两个 DateTime 对象之间进行迭代。

('2013-01-01'.to_datetime .. '2013-02-01'.to_datetime).step(1.hour) do |date|
...
end

我知道这个问题是 1.hour 只是秒数,但我尝试将其转换为 DateTime 对象并将其用作步骤也不起作用.

我查看了“Beware of Ruby Sugar”。它在底部附近提到 DateTime 有一个直接的 step 方法。我通过在 DateTime 对象上运行 methods 来确认这一点,但是我在 DateTime 中找不到任何关于 step 的文档,无论是在 Ruby 还是 Rails 的文档中。

最佳答案

与我在“How do I return an array of days and hours from a range?”中的回答类似,诀窍是使用 to_i 处理纪元以来的秒数:

('2013-01-01'.to_datetime.to_i .. '2013-02-01'.to_datetime.to_i).step(1.hour) do |date|
puts Time.at(date)
end

请注意,Time.at() 使用您本地的时区进行转换,因此您可能希望使用 Time.at(date).utc 指定 UTC。 p>

关于ruby-on-rails - 在两个日期时间之间迭代,步长为一小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com