【问题标题】:Using Time.now.between? to see if today is between two date periods使用 Time.now.between?查看今天是否在两个日期期间之间
【发布时间】:2018-09-21 03:09:32
【问题描述】:

我有一个具有start_datestop_date 属性的订阅对象。我想看看当天是否在这些时间范围之间。我做到了:

Time.now                # => 2018-09-20 22:07:15 -0500
subscription.start_date # => Wed, 19 Sep 2018
subscription.stop_date  # => Fri, 21 Sep 2018
Time.now.between? subscription.start_date, subscription.stop_date # => false

Time.now.between? 似乎不准确,我不太清楚为什么。这里有什么问题?这似乎应该工作。 9 月 20 日介于 9 月 19 日和 9 月 21 日之间,但它仍然是错误的。

【问题讨论】:

  • 也许你有不同的时区。
  • subscription.start_date.end_date 是字符串吗?
  • start_datestop_date 是日期属性。我认为即使在不同的时区,日期仍然应该是准确的。
  • 将当前时间转换为日期会得到什么?
  • [25] pry(#<#<Class:0x00007f34d55e0c70>>)> Time.now.to_date => Thu, 20 Sep 2018

标签: ruby time


【解决方案1】:

所以我找到了解决问题的方法。我不得不使用Time.now.to_date.between? 而不是Time.now.between? 进行此更改后,它终于如我预期的那样返回了true

【讨论】:

  • 您可以使用Date.today 代替Time.now.to_date 来获取今天的日期。
  • 谢谢@Stefan。非常感谢!
猜你喜欢
  • 2018-06-13
  • 2017-05-11
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
相关资源
最近更新 更多