gpt4 book ai didi

ruby - 从 Time 对象获取下个月/上个月

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

我有一个时间对象,想找到下一个月/上一个月。加减天数不起作用,因为每个月的天数不同。

time = Time.parse('21-12-2008 10:51 UTC')
next_month = time + 31 * 24 * 60 * 60

增加月份也会下降,因为必须注意滚动

time = Time.parse('21-12-2008 10:51 UTC')
next_month = Time.utc(time.year, time.month+1)

time = Time.parse('01-12-2008 10:51 UTC')
previous_month = Time.utc(time.year, time.month-1)

我发现唯一有用的是

time = Time.parse('21-12-2008 10:51 UTC')
d = Date.new(time.year, time.month, time.day)
d >>= 1
next_month = Time.utc(d.year, d.month, d.day, time.hour, time.min, time.sec, time.usec)

是否有一种我没有看到的更优雅的方式来做到这一点?你会怎么做?

最佳答案

Rails 上的 Ruby

注意:这仅适用于 Rails(感谢 Steve!)但我将其保留在这里以防其他人使用 Rails 并希望使用这些更直观的方法。

super 简单 - 谢谢 Ruby on Rails!

Time.now + 1.month

Time.now - 1.month

或者,另一个选项,如果它与当前时间相关(仅限 Rails 3+)。

1.month.from_now

1.month.ago

关于ruby - 从 Time 对象获取下个月/上个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2699902/

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