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



我有三个不同的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将它们转换回时间,但这会导致小时和分钟发生变化。

有什么想法吗?

您可以格式化每个值,然后比较它们

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)

相关内容

  • 没有找到相关文章

最新更新