比较Ruby/Rails中不同日期的时间?

2skhul33  于 2022-09-21  发布在  Ruby
关注(0)|答案(1)|浏览(172)

我有3个不同的TimeWithZone对象:

from = Mon, 20 Apr 2020 00:00:00.000000000 UTC +00:00
to = Mon, 20 Apr 2020 23:59:59.000000000 UTC +00:00

event = Sat, 01 Jan 2000 07:00:00.000000000 UTC +00:00

我不在乎日期。我所需要的就是能够看到event的时间是否在fromto的时间范围内。

在上面的例子中,事件确实在时间范围内。

我尝试使用strftimefromto仅转换为它们的时间值,然后使用#to_time将它们转换回时间,但这会导致小时和分钟发生变化。

有什么主意吗?

nnt7mjpx

nnt7mjpx1#

您可以设置每个值的格式,然后对它们进行比较

from_time, to_time, event_time = [from, to, event].map { |t| t.strftime("%H%M%S%N") }

event_time.between?(from_time, to_time)

另一个选项-仅比较秒(作为Float)

from_sec, to_sec, event_sec = [from, to, event].map(&:seconds_since_midnight)

event_sec.between?(from_sec, to_sec)

相关问题