为什么这个日期比较返回false


irb> updated_at = "2014-03-18 13:05"
irb> updated_at.to_datetime.between?("2014-03-01","2014-03-18")
=> false 

日期2014-03-18 13:05在日期2014-03-012014-03-18之间,为什么between?返回false ?

DateTime是一天内的日期和时间的度量。

当您只指定日期时,假定时间元素为午夜(即当天最早的可能时间)。例如:

irb(main):012:0> DateTime.parse("2014-03-18")
=> #<DateTime: 2014-03-18T00:00:00+00:00 (4913469/2,0/1,2299161)>

您可以从上面的输出中看到现在是午夜。

如果您要将测试更改为3月19日而不是18日,那么它将返回true

您可以使用以下命令在两个日期内进行测试,而不考虑一天中的时间:

updated_at.to_datetime.between?("2014-03-01", "2014-03-18".to_datetime.end_of_day)

相关内容

  • 没有找到相关文章