Ruby on rails 比较Rails中的日期

Ruby on rails 比较Rails中的日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,在我的Rails应用程序中,我得到了一些日期字符串,如'2016-6','2016-10',我想找到最新的一个,怎么做?使用以下方法解析特定的日期格式: 然后,您可以简单地比较日期: Date.strptime('2016-6', '%Y-%m') < Date.strptime('2016-10', '%Y-%m') => true 假设您的日期是从中获取的,您可能希望使用类似以下内容来设置日期格式: <%= f.date_select :startdate,{ disca

在我的Rails应用程序中,我得到了一些日期字符串,如
'2016-6'
'2016-10'
,我想找到最新的一个,怎么做?

使用以下方法解析特定的日期格式:

然后,您可以简单地比较日期:

Date.strptime('2016-6', '%Y-%m') < Date.strptime('2016-10', '%Y-%m')
=> true

假设您的日期是从中获取的,您可能希望使用类似以下内容来设置日期格式:

<%= f.date_select :startdate,{ discard_day: false, discard_month: true, discard_year: true }, { :class => 'form-control' } %>
“表单控件”}%>

提供的日期格式不足以进行解析

只要格式符合某些规则,Ruby就可以解析字符串日期

使用连字符时,必须包含一天

这是因为通常连字符的日期格式包括日期

幸运的是,如果您愿意或能够更改格式,您可以执行以下操作:

date = '2016/6'
DateTime.parse(date)
=> Wed, 01 Jun 2016 00:00:00 +0000
否则我会在你的约会中加上第一个

date = '2016-6' + '-1'
DateTime.parse(date)
 => Wed, 01 Jun 2016 00:00:00 +0000
现在,您可以进行典型的比较:

date1 = ...
date2 = ...
case date1 <=> date2
when -1
  # date1 is before date2
when 1
  # date1 is after date2
when 0
  # date1 is equal to date2
date1=。。。
日期2=。。。
病例日期1日期2
当-1
#日期1早于日期2
当1
#日期1在日期2之后
当0
#date1等于date2

非常奇怪的日期格式)这完全是我想要的!谢谢
date = '2016-6' + '-1'
DateTime.parse(date)
 => Wed, 01 Jun 2016 00:00:00 +0000
date1 = ...
date2 = ...
case date1 <=> date2
when -1
  # date1 is before date2
when 1
  # date1 is after date2
when 0
  # date1 is equal to date2