无法将日期与转换为日期的字符串进行比较

时间:2017-05-16 05:41:39

标签: ruby-on-rails date

我正在使用Rspotify gem并尝试将我回来的特定相册(即album.release_date)的日期与当前用户的最后一次登录日期进行比较(即current_user.last_sign_in_at)。 release_date是一个字符串。

专辑发布日期:"2017-03-18"

最后一次登录日期示例:Sat, 13 May 2017 18:57:28 UTC +00:00

我看过并尝试了我能在网上找到的所有解决方案,包括:

  • 各种字符串到日期方法(例如DateTime().to_time等)
  • 将字符串转换为日期,然后将两个日期转换为整数
  • 添加时区

但我一直遇到一些错误。

我得到的两个最常见的错误是argument out of rangeinvalid date。我进一步感到困惑,因为在使用byebug的控制台中,我可以用两种不同的转换方法比较两个日期。

3 个答案:

答案 0 :(得分:1)

您只需要将这两种格式转换为日期

"2017-03-18".to_date > "Sat, 13 May 2017 18:57:28 UTC +00:00".to_date
#=> false

您可以比较日期

与时间相同

"2017-03-18".to_time > "Sat, 13 May 2017 18:57:28 UTC +00:00".to_time
#=> false

答案 1 :(得分:0)

没有数月或数天(例如'2010'或'2010-10'),我没有考虑过字符串。

答案 2 :(得分:-1)

尝试查看 .strftime('%Y-%m-%d')。它只返回年,月和日期,现在可以比较日期。