2016-01-14 74 views
0

寻找将"01/16/2016"这样的字符串转换为轨道可处理的友好日期格式的最佳方法。重新格式化日期轨道4

我有一个日历,用户可以在其中选择from_dateto_date ..基于这些参数,我的搜索将过滤符合时间段的结果。

不幸的是,rails无法处理当前的格式。不确定最好的方式去做这件事。我可以改变搜索表单的javascript以不同的方式显示日期,但是我觉得这种格式最适合用户使用。

thx!

+0

为什么不使用date作为data_type? – CottonEyeJoe

回答

2

您可以使用标准的Ruby Date类:

some_date = Date.strptime('01/16/2016', '%m/%d/%Y') 

some_date将是Date一个实例,然后你可以在轨操作和你想要使用strftime任何方式重新格式化。

1

像taglia说,你可以使用strptime

Date.strptime('01/16/2016', '%m/%d/%Y') 

你可以改变从DD/MM日历日期格式/ YYYY以MM/DD/YYYY,那么你可以使用

require 'date' 
date = DateTime.parse("16/01/2016") 
=> #<DateTime: 2016-01-16T00:00:00+00:00 ((2457404j,0s,0n),+0s,2299161j)> 
date.strftime('%a %b %d %H:%M:%S %Z %Y') 
=> "Sat Jan 16 00:00:00 +00:00 2016" 

如果只需要日期,则可以使用Date而不是DateTime。