在我的Rails应用程序中,我得到了一些日期字符串,比如'2016-6'、'2016-10'和我想找到最新的一个,怎么做呢?
发布于 2016-12-05 15:33:18
使用Date.strptime解析特定日期格式
str = '2016-6'
Date.strptime(str, '%Y-%m')
=> Wed, 01 Jun 2016然后,您可以简单地比较日期:
Date.strptime('2016-6', '%Y-%m') < Date.strptime('2016-10', '%Y-%m')
=> true并查找一个字符串,该字符串表示最后一个日期:
['2016-6', '2016-10'].max_by { |str| Date.strptime(str, '%Y-%m') }
=> "2016-10"发布于 2016-12-05 15:34:27
假设您从a处获取日期,您可能希望使用类似的方法来格式化您的日期:
<%= f.date_select :startdate,{ discard_day: false, discard_month: true, discard_year: true }, { :class => 'form-control' } %>发布于 2016-12-05 15:34:30
提供的日期格式不足以进行分析。
只要格式符合某些规则,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 date2https://stackoverflow.com/questions/40977637
复制相似问题